【问题标题】:Database Updating but get warning saying Not Updated数据库更新但收到警告说未更新
【发布时间】:2017-04-26 05:28:35
【问题描述】:

我正在用 PHP 开发一个应用程序,到目前为止一切进展顺利。但是,使用 PHP 和 MySQLi 更新数据库表时出现错误。表格更新正常,但我收到“无法更新”消息。

这是我正在使用的代码:

<?php

if(isset($_POST['Submit'])){//if the submit button is clicked

    $name = mysqli_real_escape_string($mysqli, $_POST['name']);
    $lname = mysqli_real_escape_string($mysqli, $_POST['lname']);
    $phone = mysqli_real_escape_string($mysqli, $_POST['phone']);
    $email = mysqli_real_escape_string($mysqli, $_POST['email']);

    $sql="UPDATE admin_users SET name='$name', lname='$lname', phone='$phone', email='$email'";

    $mysqli->query($sql) or die("Cannot update");//update or error
}

任何人都可以看到可以使它做正确的事情的任何问题吗?

【问题讨论】:

  • 你需要知道真正的错误是什么;你没有这样做
  • 谢谢。你能告诉我怎么做吗?我试过 $mysqli->query($sql) 或 die 。 mysqli_error($mysqli);//更新或出错
  • 发现错误:重复条目 'dan@cvia.org.au' for key 'email' - 但只有一个条目。
  • 这是因为您没有WHERE 子句并且正在尝试更新您的整个数据库。
  • 已修复。行电子邮件是一个唯一条目,因此它试图复制它而不是更新它。删除唯一键解决了它。 Fred,如果我尝试添加 WHERE 子句,它会出现未定义的变量。

标签: php mysqli sql-update


【解决方案1】:

正如我在 cmets 中所说,您正在尝试在不使用 WHERE 子句的情况下更新整个数据库。

这就是您收到该错误的原因:

发现错误:重复条目 'email@example.com' for key 'email'

我使用通用电子邮件地址替换了它。

参考:

使用 id 作为附加列并作为 auto_increment 会更好,并确保您不会尝试更新具有约束条件的同一列。

or die("Cannot update") 并没有帮助你找到真正的错误,mysqli_error($mysqli) 会。

【讨论】:

    猜你喜欢
    • 2016-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-24
    • 2020-04-03
    相关资源
    最近更新 更多