【问题标题】:Difficulty with Inner Join on Update in mysql在 mysql 中更新内部联接的困难
【发布时间】:2012-10-29 21:33:23
【问题描述】:

我在使用此 MYSQL 语句更新一个表 [users] 中的值 [foodie_count=foodie_count-8] 时遇到一些问题,同时从另一个表 [food] 和两个表中获取值 [food.id=?]已链接 [users.id=food.userid]:

require_once('./includes/connection.inc.php');
$stmt = $db->prepare("UPDATE users SET foodie_count=foodie_count-8 FROM food INNER JOIN users ON users.id=food.userid WHERE food.id=?");
$stmt->bind_param('i',$delete_event);
$stmt->execute();

语句不正确,给我一个调用非对象上的成员函数 prepare() 的致命错误。

我查看了其他一些帖子,但没有具体看到我在编写声明时出错的地方。谢谢。

【问题讨论】:

  • 看起来你的语法错误:stackoverflow.com/questions/1262786/…
  • 在非对象上调用 prepare() 的致命错误意味着 $db 不包含它应该包含的内容。您的数据库连接失败,或在某处被覆盖。

标签: php mysqli


【解决方案1】:

MySQL UPDATE JOIN 语法有点……不同。

这应该是与 MySQL 所需语法相同的查询;

UPDATE users
JOIN food 
  ON users.id=food.userid 
SET foodie_count=foodie_count-8 
WHERE food.id=?

Simple SQLfiddle testing ground

【讨论】:

  • 完美!当飓风袭击我的纽约窗户时,你让我很开心。
猜你喜欢
  • 2011-09-16
  • 1970-01-01
  • 2016-03-21
  • 2019-06-25
  • 2023-03-07
  • 1970-01-01
  • 2014-12-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多