【问题标题】:How to check if INSERT IGNORE has actually inserted the row from php [duplicate]如何检查 INSERT IGNORE 是否实际插入了 php 中的行 [重复]
【发布时间】:2016-02-23 12:00:49
【问题描述】:

我有以下问题,我不知道如何检查我的 MySql 查询是否实际插入或忽略了我的 php 代码中的插入。
这是因为据我所知,由于忽略子句的错误防止,它总是返回 true。
我所拥有的样本是:

$addTagSql = "INSERT IGNORE INTO tags (text) 
  VALUES ('$text')";
$resultAddTag = $db -> query($addTagSql);

if(!$resultAddTag) {
  $response["success"] = 0;
}
else{
  $response["success"] = 1;
}  

我应该让它中断并处理错误吗?
我找不到一个好的答案,所以如果你能帮助我,我会很高兴:)

【问题讨论】:

  • 你可以使用ROW_COUNT():dev.mysql.com/doc/refman/5.7/en/…
  • @GordonLinoff 这可靠吗?想象一下,我有多个访问权限同时删除、插入和更新,我认为这可能会在某个时候搞砸......

标签: php mysql


【解决方案1】:

使用mysqli_affected_rows()

参考:http://php.net/manual/en/mysqli.affected-rows.php

【讨论】:

    【解决方案2】:

    你可以试试$mysqli->affected_rows

    【讨论】:

      【解决方案3】:

      insert ignore用来忽略错误,可以使用insert查看是否返回sql错误。

      【讨论】:

        最近更新 更多