在PDO SQL上使用这个`{...}`括号

时间:2014-10-13 04:52:51

标签: php pdo

我曾经看到一些文章使用这个{ ... }括号来插入变量

EX:

$query = $this->pdo->prepare("SELECT * FROM administrator WHERE username = '{$ins}'");

这不重要吗?或者与这个有什么不同?

$query = $this->pdo->prepare("SELECT * FROM administrator WHERE username = '$ins'");

编写PDO SQL查询的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

都不是。

您的SQL代码不应包含变量输入。您应该使用参数绑定。

$query = $this->pdo->prepare('SELECT * FROM administrator WHERE username = ?');
$query->execute([$ins]);

为了安全起见,我建议使用单引号' ',因为字符串插值仅适用于双引号。

在某些情况下,您可能希望将PHP常量用作SQL的一部分。在这种情况下,您可以使用简单的串联。

define('ADMIN_TABLE', 'administrator');
$query = $this->pdo->prepare('SELECT * FROM '.ADMIN_TABLE.' WHERE username = ?');
$query->execute([$ins]);