【问题标题】:Insert Ignore - Ask MySQL if statement was ignored插入忽略 - 询问 MySQL 语句是否被忽略
【发布时间】:2019-02-16 04:02:05
【问题描述】:

我有以下代码,它是在 PHP 中将用户添加到数据库的函数的一部分。它将用户添加到数据库中。

if($user != '' && $pass != ''){
            $new_name_q = "INSERT IGNORE INTO $db_name (`User`, `Password` ,`Name`, `Medals`, `TextSize`)
                                         VALUES ('$user','$pass','$nameComplete', '000000', '18')";
            $new_name_rs = mysqli_query($connection1,$new_name_q);

            if(!$new_name_rs)
            {
                die("No name added: " . mysql_error());
            }
        }

查询工作正常,我没有得到任何重复。 但我想向用户发出警告,以防查询被忽略。

【问题讨论】:

  • mysql_error() 不与 mysqli_ api 混合使用,因此如果出现错误,则永远不会出现(真正的)错误。
  • 你可以试试mysql_affected_rows()
  • UserPRIMARY KEY(或至少是 UNIQUE)吗?如果您在那里也有一个自动递增的 id,那么您可能会遇到问题。您还应该使用prepared statement with bound parameters

标签: php mysql insert sql-insert


【解决方案1】:

这是您需要的代码:

if($user != '' && $pass != ''){
    $new_name_q = "INSERT IGNORE INTO $db_name (`User`, `Password` ,`Name`, `Medals`, `TextSize`)
        VALUES ('$user','$pass','$nameComplete', '000000', '18')";
    $new_name_rs = mysqli_query($connection1,$new_name_q);
    $affected = mysqli_affected_rows($connection1);
    if(!$affected) {
        die("No name added");
    }
}

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

[我在这里假设您已经完成了诸如确保变量已正确转义之类的事情]

【讨论】:

  • 非常感谢!这正是我想要的
  • 是的,变量已正确转义,感谢您的帮助!
猜你喜欢
  • 1970-01-01
  • 2015-01-31
  • 2017-09-22
  • 1970-01-01
  • 2015-08-13
  • 2014-03-04
  • 2016-02-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多