0

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

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

此外,我一直在谷歌搜索“PDO 与准备好的声明”,但没有成功,看看有什么区别。有什么区别还是它们是一样的?

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

非常感谢您的建议。问候

4

2 回答 2

1

因为它们已经过时了

从何时起?它们没有被弃用。

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

如果您正在处理一个中型到大型项目,那么定义您自己的抽象层 - 这样您使用哪个都没有关系。(请注意,尽管大肆宣传使应用程序可跨不同 DBMS 移植并不像使用抽象层那么简单)。

于 2012-05-17T11:28:30.133 回答
0

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

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

于 2012-05-17T11:26:02.803 回答