一个便捷的PHP的MySQL PDO操作类
By
lincanbin
at 2014-11-12 • 0人收藏 • 2088人看过
https://github.com/lincanbin/PHP-PDO-MySQL-Class
使用参数绑定,可以避免SQL注入,支持PDO原生不支持的WHERE IN。
支持array和hashtable两种参数绑定方式,便捷安全高速。
2 个回复 | 最后更新于 2014-11-13
使用这个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。
登录后方可回帖
学习