如何在 PHP 中绑定 SQL 变量?
Posted
技术标签:
【中文标题】如何在 PHP 中绑定 SQL 变量?【英文标题】:How to bind SQL variables in PHP? 【发布时间】:2010-12-24 00:37:51 【问题描述】:我想绑定变量而不是仅仅构建 SQL 字符串。 无论如何要在 php 中做到这一点?
mysql 或 PostgreSQL 的答案都会有所帮助。
谢谢
【问题讨论】:
将表中的记录绑定到应用程序中的对象或将 PHP 中的变量“绑定”到 SQL 中的变量? “绑定”PHP 中的变量到 SQL 中的变量 :) 【参考方案1】:有例如PDO. pdo和prepared statements(包括绑定参数)的介绍位于http://docs.php.net/pdo.prepared-statements
【讨论】:
小心使用 PDO::bindParam: ***.com/questions/833510/…【参考方案2】:有几种口味。我相信这里更精明的人会推动您使用 PDO 准备好的语句。还有一个 sprintf() 版本。
PDO
已经在 *** here 上讨论了答案。
SPRINTF
$sql = sprintf('SELECT * FROM table WHERE id = %d AND field = %s',
$id,
mysql_real_escape_string($value));
【讨论】:
sprintf 如何替换绑定变量?没有对变量内容进行数据库检查。这和纯文本一样不安全 sprintf版本易受sql注入,不宜使用。【参考方案3】:您应该阅读http://php.net/manual/en/book.mysqli.php 上的 MySQL 改进扩展 (MySQLi) 以及准备好的语句
【讨论】:
【参考方案4】:特别是对于 Postgres - pg_query_params
(和 pg_send_query_params
)是最原始的绑定形式,但仍然非常有用。
然后是 PDO,但其他人已经提到了。
【讨论】:
以上是关于如何在 PHP 中绑定 SQL 变量?的主要内容,如果未能解决你的问题,请参考以下文章