簡體   English   中英

如何將多個查詢更新為一個

[英]How to update multiple queries as one

這是mu查詢

$sql_query= "insert into shortdb1.currency_code set currency_code = 'KWD', 
based_on = 'KWD', currency_rate = '1.00', 
last_update = '2013-07-25 11:41:33';
insert into shortdb1.currency set currency_code = 'KWD', 
language_code = 'EN', currency_name = 'Kuwaiti Dinar';";


    $conn_1->query($sql_query)

但我得到錯誤

您的SQL語法有錯誤; 查看與MySQL服務器版本對應的手冊,以便在' insert into shortdb1.currency set currency_code = 'KWD', language_code = 'EN','第4行附近使用正確的語法

您的查詢需要存儲為字符串,即:

$sql_query = insert into shortdb1.currency_code set currency_code = 'INR', based_on = 'KWD', currency_rate = '200', last_update = '2013-07-25 11:14:26';

需要是

$sql_query = "insert into shortdb1.currency_code set currency_code = 'INR', based_on = 'KWD', currency_rate = '200', last_update = '2013-07-25 11:14:26'";

查詢和php句子結尾處缺少大量的引號和分號:

$sql_query = "insert into shortdb1.currency_code set currency_code = 'INR', based_on = 'KWD', currency_rate = '200', last_update = '2013-07-25 11:14:26';";

$sql_query .= "insert into shortdb1.currency set currency_code = 'INR', language_code = 'EN', currency_name = 'Indian Rupee', based_on = 'KWD', currency_rate = '200', last_update   = '2013-07-25 11:14:26';";

$conn_1->query($sql_query);

如果要發送多個更新查詢,可以使用事務

$firstQuery = "insert into shortdb1.currency_code set currency_code = 'KWD', based_on = 'KWD', currency_rate = '1.00', last_update = '2013-07-25 11:41:33'";
$secondQuery = "insert into shortdb1.currency set currency_code = 'KWD', language_code = 'EN', currency_name = 'Kuwaiti Dinar';";

try {
    // create transaction
    $conn->beginTransaction();

    // multiple query commands
    $conn->query($firstQuery);
    $conn->query($secondQuery);
    // ect...

    // if we are here, then the above query got passed correctly without exception
    // now we can commit the transaction
    $conn->commit();
} 
catch (Exception $e) {
    // if above commands fails, the db gets a rollback task
    $conn->rollback();
}

這是在一個序列中對數據庫使用多個插入/更新查詢的好方法。

事務的強大之處在於,您可以創建一個更新查詢數組,並在上面的塊中循環遍歷該數組,而不是多行查詢。

我認為您的查詢形成錯誤。 SET關鍵字用於UPDATE查詢。

對於INSERT查詢,它應采用以下形式:

INSERT INTO TABLE_NAME (column1, column2, column3)  
                VALUES (value1, value2, value3);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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