簡體   English   中英

一條語句中的多個SQL查詢

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM