【问题标题】:MySQLi UPDATE isn't working.MySQLi 更新不起作用。
【发布时间】:2014-04-05 21:33:16
【问题描述】:

由于某种原因,我无法让 UPDATE 工作,经过数小时的谷歌搜索后,我似乎无法找到工作代码。

$stmt = $con->prepare("UPDATE user_settings SET accept_emails = ? WHERE user= '$user'");
$stmt->bind_param('s', '0');
$stmt->execute(); 
$stmt->close();

尝试通过 Ajax 更新,不断返回 500 服务器错误。我应该只使用旧的 MySQL 方式吗?

【问题讨论】:

  • 检查您的错误日志以获取更多详细信息!
  • 为什么你使用bind_param作为文字而不是变量?那是倒退!
  • @Brian 没有看到您的其余代码,很难告诉您出了什么问题除非您检查 error_log 并告诉我们那里显示的错误。
  • 检查$con->prepare()的返回值,如果失败则打印$con->error
  • "我应该使用旧的 MySQL 方式吗?"不。遇到一个错误不是放弃代码的理由;你只需要找出错误是什么,这样你就有一个更好的研究起点。 This post might be helpful for that,请记住,您可以在普通浏览器选项卡中加载通常是 AJAX 响应的 URL。

标签: php ajax mysqli


【解决方案1】:

我很确定您不能在仅绑定变量中使用文字。 这是你应该使用的。

$var="0";

$stmt = $con->prepare("UPDATE user_settings SET accept_emails = ? WHERE user=?");
$stmt->bind_param('ss',$var,$user);
$stmt->execute(); 
$stmt->close();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-28
    • 2018-09-04
    • 2015-01-05
    • 1970-01-01
    相关资源
    最近更新 更多