PHP\MYSQL 预处理语句

标签 php mysql prepared-statement

我是 mysql 和 php 的新手,想澄清一些有关准备语句的内容。

我看到的所有示例都只为表中的实际数据添加参数,将所有字段参数化以减少语句是否是一种不好的做法?例如

UPDATE ? SET ?=? WHERE ID=?  

谢谢

最佳答案

不能参数化标识符。您只能参数化数据。否则,参数化的要点,语句结构数据 之间的分离,就没有实际意义了。了解参数化不仅仅是花哨的复制和粘贴,它是一种确保数据库在 static 部分(它将从中获取指令)和 之间有明确分离的技术动态部分(它将被视为数据和仅数据)。


我个人不太理解为什么每个人都试图尽可能地减少 SQL 而不想写任何东西。在现实世界的应用程序中,应用程序将向数据库发送定义的有限 SQL 查询。将有一个查询通过用户名查找用户,一个计算 bar 表中 foo 的数量等。将这些查询一次,手写。有方法findUserByName()某处,其中包含按用 SQL 写出的名称查找用户的查询。您不需要动态拼凑每个查询,只需编写一次即可。这也为您提供了所有可能的数据库交互的良好“ list ”,并允许在必要时进行手动调整。 </rant>


因此,这既不可能被误导。

关于PHP\MYSQL 预处理语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16057356/

相关文章:

php - 如何在 AssetBundle - Yii2 中添加 "type=' text/css'"For CSS

javascript - 如果使用 XMLHttpRequest 发送 wav 文件,如何在 PHP 中将其保存在服务器上?

php - MySQL将玩家信息与时间连接起来

Python 准备语句。 SELECT IN 的问题

php - PDO - 准备好的语句不能正确处理变量

php - 带有 'min_amount' 和 'set_customer_limit' 的 PayPal 按钮

php - PayPal Express Checkout 始终显示用户 "This transaction has expired."页面,但没有 API 错误

MySQL:删除对数据库的所有引用

php - 对不同查询求和

java - 为大量列准备的声明