我应该使用mysql_ *,PDO和Prepared语句的组合而不仅仅是PDO吗?

时间:2012-05-17 11:23:18

标签: php mysql

我正在做一个电子商务CMS,我所有的SQL查询都是mysql_ *函数。 由于它们已经过时,我想加入PDO /准备好的声明。

从安全角度来看,我是否应该仅将PDO / prepared语句用于涉及用户输入的查询? 我可以将mysql_ *函数用于没有用户输入的查询吗?

此外,我一直在谷歌搜索“PDO vs准备好的声明”但没有成功,看看有什么不同。是否存在任何差异或者它们是否相同?

我也被建议使用MySQLi。没有MySQLi,我可以坚持使用PDO吗?

非常感谢你的建议。此致

2 个答案:

答案 0 :(得分:1)

  

因为它们已经过时了

从什么时候开始?它们不会被弃用。

所有mysql,mysqli和PDO最终都做同样的事情,但方式却截然不同。对同一数据使用三种不同的API不是一个好主意 - 使用一个并学习如何有效地使用它。当然,你可以成为所有这些人的专家,但不要在同一个项目中混合搭配 - 其他人可能想看看你的代码。

如果您正在从事中型到大型项目,那么请定义您自己的抽象层 - 这样您使用哪个并不重要。 (尽管大肆宣传可以在不同的DBMS上移植应用程序并不像使用抽象层那样简单。)

答案 1 :(得分:0)

PDO 一个准备好的语句库(或者至少你可以用它做预备语句),这就是为什么你找不到任何差异。

关于mysql_ vs mysqli_ vs PDO问题;这只是个人偏好。我会说:坚持其中一个,但是如果你的代码库已经很大了,我会说:保持原样,只需用PDO / Mysqli编写新的部分。