【问题标题】:Confirm record INSERT with PDO and MySQL使用 PDO 和 MySQL 确认记录 INSERT
【发布时间】:2015-01-07 19:11:01
【问题描述】:

无论是否插入记录,如果没有错误,以下将回显$response of 1。

我阅读了PDO mysql: How to know if insert was successful,但是,它只是描述了查询是否不成功可能是由于错误造成的。

如何确认是否插入了记录?

<?php
$sql='INSERT INTO t3(id,data) SELECT id,data FROM t2 WHERE id=?';
$stmt=db::db()->prepare($sql);
$response=$stmt->execute(array(123));
echo($response);
?>

【问题讨论】:

  • 除非您设置了不同的错误模式,否则 PDO 将简单地在错误时返回布尔值 false,或者在成功时返回 1/handle/object。由于您正在执行插入操作,因此没有结果集,因此您将得到一个 1(又名 true)返回以指示成功。你也可以使用rowCount
  • @MarcB rowCount 可以。不知道这是否是我唯一的选择。

标签: php mysql pdo


【解决方案1】:

PDO::rowCount 将返回受影响的行数。

所以你可以:echo $stmt-&gt;rowCount();

【讨论】:

    【解决方案2】:

    也许是一个糟糕的答案,但是如何创建一个选择来查找您的插入,然后简单地比较您的插入和您的选择,或者一个带有计数的选择与您的输入变量?

    其他选项可能是检查last inserted ID

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-26
      • 1970-01-01
      • 2014-07-21
      • 1970-01-01
      • 1970-01-01
      • 2018-12-22
      • 1970-01-01
      • 2014-03-12
      相关资源
      最近更新 更多