我有两个表,我想使用SQL Update语句更新。这两个表包含一行名为“oak”和“exp”的行,它是我想要更新的值。到目前为止,我最好的猜测是:
'UPDATE `items_woods`, `skills_woodcutting` SET `oak`=`oak`+1, `exp`=`exp`+13 WHERE `id`=?'
但是,没有任何值保存在数据库中。提前谢谢。
更新:
if ($stmt = $mysqli->prepare('
BEGIN TRANSACTION
UPDATE items_woods
SET items_woods.oak = ´1´
FROM items_woods T1, skills_woodcutting T2
WHERE T1.id = T2.id
and T1.id = ´?´
UPDATE skills_woodcutting
SET skills_woodcutting.exp = ´1´
FROM items_woods T1, skills_woodcutting T2
WHERE T1.id = T2.id
and T1.id = ´?´
COMMIT
')) {
答案 0 :(得分:1)
SQL Update,一次只能更新一个表
使用具有两个更新语句的事务
答案 1 :(得分:0)
由于有两个表,您必须使用两个单独的语句更新它们。可以将这些事务作为单个事务,并且只有在两个事务都成功后才提交这两个事务。
我不确定您使用的数据库是什么,但一般方法是:
commit (start the transaction)
update items_woods set oak = oak+1 where id = ?
update skills_woodcutting set exp=exp+13 where id = ?
commit (complete the transaction)