使用 PHP 和 MySQL 准备的语句,而不使用 mysqli
我想知道是否可以使用 mysql 库而不是 mysqli 库使用 PHP 和 MySQL 创建准备好的语句。
我在 PHP 文档中找不到任何内容。
谢谢。
I'd like to know if it is possible to create a prepared statement with PHP and MySQL using the mysql library rather than the mysqli library.
I can't find anything on the PHP documentation.
Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
PHP 文档非常清楚地指出(在该页面的末尾)
mysql
扩展不支持准备好的语句。支持准备好的语句的mysqli
的替代方案是PDO_MYSQL
。The PHP documentation quite clearly states (at the end of that page) that the
mysql
extension does not support prepared statements. An alternative tomysqli
that supports prepared statements would bePDO_MYSQL
.PDO 怎么样?
http://php.net/manual/en/book.pdo.php
what about PDO ?
http://php.net/manual/en/book.pdo.php
为什么要使用准备好的语句?
如果您担心 SQL 注入,您可以随时推出自己的注入:
输出为:
SELECT FROM
users
WHEREfname
= 'Robert');删除表学生;--' ANDlname
= 'Smith'从
users
中选择,其中fname
= 'Robert\');删除表学生;--' ANDlname
= 'Smith'编辑:忘记了 xkcd 链接 http ://xkcd.com/327/
Why do you want to use a Prepared Statement?
If SQL injection is your concern you could always roll your own:
Output is:
SELECT FROM
users
WHEREfname
= 'Robert'); DROP TABLE students;--' ANDlname
= 'Smith'SELECT FROM
users
WHEREfname
= 'Robert\'); DROP TABLE students;--' ANDlname
= 'Smith'EDIT: forgot the xkcd link http://xkcd.com/327/