2012-10-29 25 views
0

我有一些問題,這個MYSQL staement更新值[foodie_count = foodie_count-8]在一個表[用戶]同時具有值​​[food.id =?]從另一個表[食品]和兩個錶鏈接[users.id = food.userid]:在內部加入更新在mysql中的困難

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(); 

的說法不妥當,在扔我打電話的致命錯誤成員函數準備()非對象。

我看了一些其他的帖子,但沒有具體看到我寫錯誤的地方。謝謝。

+1

看起來像你的語法是錯誤的:http://stackoverflow.com/questions/1262786/mysql-update-query-based-on-select-query –

+0

致命錯誤調用prepare()在非對象上意味着'$ db'不包含它應該包含的內容。您的數據庫連接失敗,或在某處被覆蓋。 –

回答

2

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

+0

完美!當我在紐約窗口颶風肆虐時,你度過了我的一天。 – vinsanity38