我正在做一个电子商务CMS,我所有的SQL查询都是mysql_ *函数。 由于它们已经过时,我想加入PDO /准备好的声明。
从安全角度来看,我是否应该仅将PDO / prepared语句用于涉及用户输入的查询? 我可以将mysql_ *函数用于没有用户输入的查询吗?
此外,我一直在谷歌搜索“PDO vs准备好的声明”但没有成功,看看有什么不同。是否存在任何差异或者它们是否相同?
我也被建议使用MySQLi。没有MySQLi,我可以坚持使用PDO吗?
非常感谢你的建议。此致
答案 0 :(得分:1)
因为它们已经过时了
从什么时候开始?它们不会被弃用。
所有mysql,mysqli和PDO最终都做同样的事情,但方式却截然不同。对同一数据使用三种不同的API不是一个好主意 - 使用一个并学习如何有效地使用它。当然,你可以成为所有这些人的专家,但不要在同一个项目中混合搭配 - 其他人可能想看看你的代码。
如果您正在从事中型到大型项目,那么请定义您自己的抽象层 - 这样您使用哪个并不重要。 (尽管大肆宣传可以在不同的DBMS上移植应用程序并不像使用抽象层那样简单。)
答案 1 :(得分:0)
PDO 是一个准备好的语句库(或者至少你可以用它做预备语句),这就是为什么你找不到任何差异。
关于mysql_ vs mysqli_ vs PDO问题;这只是个人偏好。我会说:坚持其中一个,但是如果你的代码库已经很大了,我会说:保持原样,只需用PDO / Mysqli编写新的部分。