首頁 >資料庫 >mysql教程 >可以在單一 PHP 語句中執行多個 SQL 查詢嗎?

可以在單一 PHP 語句中執行多個 SQL 查詢嗎?

Linda Hamilton
Linda Hamilton原創
2024-11-24 06:41:10242瀏覽

Can Multiple SQL Queries Be Executed in a Single PHP Statement?

使用PHP 在一條語句中執行多個SQL 查詢

問題:

可以多個SQL 查詢被合併到單一語句中PHP?

上下文:

問題涉及到單獨執行多個SQL 查詢的場景:

$query = "DELETE FROM aktywne_kody WHERE kodsms ='$kodSMSgracza' AND typkodu ='$id'";
mysql_query($query) or die(mysql_error());

$query = "INSERT INTO uzyte_kody (gracz, kodsms, typkodu) VALUES ('$nickGracza', '$kodSMSgracza', '$id')";
mysql_query($query) or die("Błąd MySQL X04");

$query = "INSERT INTO do_odebrania (gracz, itemDATA, itemQTY) VALUES ('$nickGracza', '$itemDATA', '$itemQTY')";
mysql_query($query) or die("Błąd MySQL X05");

答案:

是的,可以使用PHP 在單一語句中執行多個SQL查詢mysql_connect() 的特定參數。

將65536 作為第五個參數傳遞給mysql_connect():

$conn = mysql_connect('localhost','username','password', true, 65536 /* here! */) or die("cannot connect");
mysql_select_db('database_name') or die("cannot use database");

設定此參數後,可以在單一語句中執行多個SQL 查詢:

mysql_query("
    INSERT INTO table1 (field1,field2) VALUES(1,2);

    INSERT INTO table2 (field3,field4,field5) VALUES(3,4,5);

    DELETE FROM table3 WHERE field6 = 6;

    UPDATE table4 SET field7 = 7 WHERE field8 = 8;

    INSERT INTO table5
       SELECT t6.field11, t6.field12, t7.field13
       FROM table6 t6
       INNER JOIN table7 t7 ON t7.field9 = t6.field10;

    -- etc
");

要注意的是,在使用mysql_fetch_* 或mysql_num_rows 或mysql_affected_rows,僅處理多個查詢中的第一個語句。諸如 mysql_affected_rows 之類的函數可用於檢索第一個查詢插入或影響的行數。但是,像 mysql_fetch_* 這樣的函數只會為第一個查詢傳回值,而不會為語句中的後續查詢傳回值。

以上是可以在單一 PHP 語句中執行多個 SQL 查詢嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn