(PHP) 关于PDO的占位符
PDO的占位符应该用变量名来表示
总结起来,我们应该将变量名写入占位符中。虽然在一些情况下你也可以使用问号或减少execute的参数,但从可读性和可维护性的角度考虑,最好还是使用变量名来进行描述。
$label = '素晴らしい!!';
$n = 80;
$stmt = $pdo->prepare(
"UPDATE
posts
SET
message = CONCAT(?, message)
WHERE
likes >= ?"
);
$stmt->execute([$label, $n]);
↓改成中文的话
$stmt = $pdo->prepare(
"UPDATE
posts
SET
message = CONCAT(:label, message)
WHERE
likes > :n"
);
$stmt->execute([':label' => $label, ':n' => $n]);
由于execute()函数的第一个参数(冒号:)可以省略,因此可以写成↓
$stmt = $pdo->prepare(
"UPDATE
posts
SET
message = CONCAT(:label, message)
WHERE
likes > :n"
);
$stmt->execute(['label' => $label, 'n' => $n]);
这就是结果。
就是这样了。