## class DB
数据库类
**使用说明:**
大家知道php5.3之后已经没有`magic_quotes_gpc`这个参数了
这个参数开启主要是对 `'` `"`的转义,防止sql注入
没有这个参数难道我们就要给全部的GPC变量进行`addslashes()`?php升级反给开发者带来了不便?
其实不是这样的,因为pdo已经推出很久了,pdo预处理会自动对数组参数进行转义的,
如果`magic_quotes_gpc=on`,php会对GPC转义一次,使用pdo数组参数的时候就还会2次,这种重复转义会导致插入数据库的数据与我们提交的不一样。所以才取消了`magic_quotes_gpc`。
所以,最好的方式就是关闭`magic_quotes_gpc`,使用pdo的预处理来执行mysql命令,phpstart也内置了函数库来兼容不支持pdo的php环境:
~~~
'PHPstart/__Function/pdo.func.php'
'PHPstart/__Class/DB.class.php'
~~~
如果你要使用pdo的预处理,请确保`magic_quotes_gpc=off`,pdo也只对数组参数进行转义,字符串的sql命令并不会再转义,所以在组装sql命令的时候请注意手动`addslashes()`!!!
我们也提供更简单的接口`X()`,让你在写代码的时候更省时省力。
~~~
$sql = "select * from user where username='".X($_GET['username'])."'";
~~~
* * * * *
**pdo接口使用方法**
~~~
PS::sysClass('DB',0);
$con = new DB($conname);//缺省参数是mater ,对应database.ini.php的配置
$con->fetch($sql,$param);//查询
//忘记上面这个方法吧,推荐使用下面的函数,更便捷↓
$con = pdo($conname);//$conname缺省参数是mater ,对应database.ini.php的配置
$con->fetch($sql,$param);//查询
或着可以再简单点↓
pdo($conname)->fetch($sql,$param);//$conname缺省参数是mater ,对应database.ini.php的配置
//更多pdo的教程请网上搜索
~~~
pdo() 返回一个数据库链接对象,参数是链接名,默认是master,
默认链接名可以通过常量DEFAULT_DB定义,也可以通过pdo('master')函数的第一个参数传递。数据库链接信息请在配置文件中修改。
配置文件:__Config/database.ini.php
更多说明请参考 'PHPstart/__Function/pdo.func.php'