我应该使用 mysql_*、PDO 和 Ready 语句的组合,而不仅仅是 PDO


Should I use a combination of mysql_*, PDO's and Prepared statement instead of just PDO's?

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

从安全角度来看,我是否应该只对涉及用户输入的查询使用 PDO/ready 语句?是否可以只对没有用户输入的查询使用 mysql_* 函数?

另外,我一直在谷歌上搜索"PDO与准备好的陈述",但没有成功,看看有什么区别。有什么区别还是一回事?

我也被建议使用MySQLi。我可以在没有MySQLi的情况下坚持使用PDO吗?

非常感谢您的建议。问候

由于它们已经过时

什么时候开始的?它们未被弃用。

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

如果您正在处理大中型项目,请定义自己的抽象层 - 这样您使用哪个就无关紧要了。(注意,尽管炒作使应用程序跨不同的DBMS可移植并不像使用抽象层那么简单)。

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

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