【问题标题】:How to bind SQL variables in PHP?如何在 PHP 中绑定 SQL 变量?
【发布时间】:2010-12-24 00:37:51
【问题描述】:

我想绑定变量而不是仅仅构建 SQL 字符串。 无论如何要在 PHP 中做到这一点?

MySQL 或 PostgreSQL 的答案都会有所帮助。

谢谢

【问题讨论】:

  • 将表中的记录绑定到应用程序中的对象或将 PHP 中的变量“绑定”到 SQL 中的变量?
  • “绑定”PHP 中的变量到 SQL 中的变量 :)

标签: php mysql postgresql binding


【解决方案1】:

有例如PDO.
pdo和prepared statements(包括绑定参数)的介绍位于http://docs.php.net/pdo.prepared-statements

【讨论】:

【解决方案2】:

有几种口味。我相信这里更精明的人会推动您使用 PDO 准备好的语句。还有一个 sprintf() 版本。

PDO

已经在 StackOverflow 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,但其他人已经提到了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-05-07
      • 2012-07-29
      • 1970-01-01
      • 2014-07-12
      • 1970-01-01
      • 2020-03-21
      • 2017-12-16
      相关资源
      最近更新 更多