🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## 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'