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

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

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

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

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

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

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

学习

lincanbin
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。


登 录


现在注册

QQ  登 录    Weibo  登 录    GitHub  登 录