(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]);

这就是结果。
就是这样了。

bannerAds