一个便捷的PHP的MySQL PDO操作类

By lincanbin at 2014-11-12 • 0人收藏 • 2057人看过

https://github.com/lincanbin/PHP-PDO-MySQL-Class

使用参数绑定,可以避免SQL注入,支持PDO原生不支持的WHERE IN。

支持array和hashtable两种参数绑定方式,便捷安全高速。

2 个回复 | 最后更新于 2014-11-13
2014-11-13   #1

学习

2014-11-13   #2

使用这个Class的话,这样就是安全的:

<?php
$DB->query("SELECT * FROM fruit WHERE name IN (?)",array($_GET['pm1'],$_GET['pm2']));
$DB->query("SELECT * FROM users WHERE name=? and password=?",array($_GET['name'],$_GET['pw']));
?>

直接拼接字符串则是危险的:

<?php
$DB->query("SELECT * FROM fruit WHERE name IN ('".$_GET['pm1']."','".$_GET['pm2']."')");
$DB->query("SELECT * FROM users WHERE name='".$_GET['name']."' and password='".$_GET['pw']."'");
?>

PDO参数绑定的原理是将命令与参数分两次发送到MySQL,MySQL就能识别参数与命令,从而避免SQL注入(在参数上构造命令)。

mysql在新版本PHP中已经预废弃,使用的话会抛出错误,现在建议使用MySQLi或者MySQL_PDO。

登录后方可回帖

登 录
信息栏

Carbon Forum是一个基于话题的高性能轻型PHP论坛

下载地址:Carbon Forum v5.9.0
QQ群:12607708(QQ我不常上)

donate

手机支付宝扫描上方二维码可向本项目捐款

粤公网安备 44030602003677号
粤ICP备17135490号

Loading...