这是PDO的坏技术吗?

时间:2015-05-07 13:10:43

标签: php pdo

我一直在为一些个人项目使用PDO预备语句。

我一直这样做:

$1 = 1;
$2 = 2;
$3 = 3;
$sql = "INSERT INTO table (field1, field2, field3) VALUES (?, ?, ?)";
$stmt = $conn->prepare($sql);
$stmt->execute(array($1, $2, $3));

它似乎工作正常,但我想知道是否有任何安全问题这样做?

它是否仍被视为准备好的声明?

1 个答案:

答案 0 :(得分:1)

这仍然是一份准备好的声明,这样做没有任何具体的安全问题。

但是,您可以考虑将绑定参数用于更复杂的查询,或者存在更多参数的情况。您和未来的代码维护者可以更容易地进行可视化解析。

$sql = "INSERT INTO table (field1, field2, field3) VALUES (:f1, :f2, :f3)";
$stmt = $conn->prepare($sql);

$stmt->bindParam(':f1', $f1);
$stmt->bindParam(':f2', $f2);
$stmt->bindParam(':f3', $f3);

$stmt->execute();