【问题标题】:PDO Prepared Statements: Replacing the value of a columnPDO Prepared Statements:替换列的值
【发布时间】:2015-09-03 14:56:29
【问题描述】:

如何使用准备好的语句和绑定参数来替换列中的值?例如,

$stmt = "UPDATE users SET name = :name
    WHERE name = :name";

$stmt->bindParam(:name, $oldName);
$stmt->bindParam(:name, $newName);
$stmt->execute();

【问题讨论】:

  • 噢!当然,这是解决方案……我的大脑在这个时候显然无法工作。谢谢你们的帮助。
  • 不客气。很高兴能提供帮助。

标签: php sql pdo prepared-statement


【解决方案1】:

您不能在prepare 语句中使用相同命名的绑定参数,您的参数名称必须是唯一的

$stmt = $connection->prepare("UPDATE users SET name = :newName
    WHERE name = :oldName");

$stmt->bindParam(':oldName', $oldName);
$stmt->bindParam(':newName', $newName);

【讨论】:

    【解决方案2】:

    你必须使用不同的占位符:

    $stmt = $dbh->prepare("UPDATE users SET name = :newname
        WHERE name = :oldname")
    $stmt->bindParam(':oldname', $oldName);
    $stmt->bindParam(':newname', $newName);
    $stmt->execute();
    

    【讨论】:

      猜你喜欢
      • 2013-05-05
      • 2010-11-25
      • 2012-10-04
      • 1970-01-01
      • 2011-07-08
      • 2012-08-23
      • 2013-08-25
      • 2016-09-11
      • 1970-01-01
      相关资源
      最近更新 更多