[英]Multiple SQL queries in one statement
我想在一个语句中执行多个查询,这是我的代码,它不起作用。
$stmt = $mysqli->prepare("UPDATE menu SET DESCRIPTION= ('$txt1'), VISIBLE=('$ckHOME1')
where id='1';
UPDATE menu SET DESCRIPTION= ('$txt1'), VISIBLE=('$ckHOME1') where id='1';
UPDATE menu SET DESCRIPTION= ('$txt2'), VISIBLE=('$ckHOME2') where id='2';
UPDATE menu SET DESCRIPTION= ('$txt3'), VISIBLE=('$ckHOME3') where id='3';
UPDATE menu SET DESCRIPTION= ('$txt4'), VISIBLE=('$ckHOME4') where id='4';");
$stmt->execute();
if (!mysqli_query($con,$sql))
{
die('Error: ' . mysqli_error($con));
}
mysqli_close($con);
}
另外,您也可以使用CASE
使其成为一条UPDATE
语句。
UPDATE menu
SET
DESCRIPTION = CASE WHEN id = 1 THEN '$txt1'
WHEN id = 2 THEN '$txt2'
WHEN id = 3 THEN '$txt3'
WHEN id = 4 THEN '$txt4'
END,
VISIBLE = CASE WHEN id = 1 THEN '$ckHOME1'
WHEN id = 2 THEN '$ckHOME2'
WHEN id = 3 THEN '$ckHOME3'
WHEN id = 4 THEN '$ckHOME4'
END
where id IN (1, 2, 3, 4)
您必须使用mysqli_multi_query()
在一个调用中执行多个查询。
但是,您无需对正在执行的操作进行多次查询:
UPDATE menu
SET description =
CASE id
WHEN 1 THEN '$txt1'
WHEN 2 THEN '$txt2'
WHEN 3 THEN '$txt3'
WHEN 4 THEN '$txt4'
END,
visible =
CASE id
WHEN 1 THEN '$ckHOME1'
WHEN 2 THEN '$ckHOME2'
WHEN 3 THEN '$ckHOME3'
WHEN 4 THEN '$ckHOME4'
END
WHERE id IN (1, 2, 3, 4);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.