簡體   English   中英

如何縮小INSERT和PRINT查詢?

[英]How to minify an INSERT and PRINT query?

我有兩個PHP / SQL函數,我想知道如何縮小它們。 我想將3個插入命令作為一個$ import而不是三個來運行,但是我不確定如何縮小它。

$import9="INSERT into wp_postmeta (meta_id,post_id,meta_key,meta_value) values(',','$data[37]','lower_electric_costs','$data[5]')";
$import10="INSERT into wp_postmeta (meta_id,post_id,meta_key,meta_value) values(',','$data[37]','cheapest_green_electric','$data[6]')";
$import11="INSERT into wp_postmeta (meta_id,post_id,meta_key,meta_value) values(',','$data[37]','contract_type','$data[11]')";

我的PRINT結果也是如此-我將如何縮小呢?

mysql_query($import9) or die("mysql_error()");
print $import9."<br>";
mysql_query($import10) or die("mysql_error()");
print $import10."<br>";
mysql_query($import11) or die("mysql_error()");
print $import11."<br>";

我仍在學習PHP / SQL,學習如何減少代碼是我認為重要的一部分。 如果有人能給我一個縮小版本的樣例,那么我可能可以從那里獲取。

謝謝

您可以將其組合為一個查詢,如下所示:

$import9="
    INSERT into
        wp_postmeta
        (meta_id,post_id,meta_key,meta_value)
    values
        (',','$data[37]','lower_electric_costs','$data[5]'),
        (',','$data[37]','cheapest_green_electric','$data[6]'),
        (',','$data[37]','contract_type','$data[11]')
";

但是,你應該使用mysqli而不是mysql功能, mysql功能已被棄用。

mysqli_query($import9);

還建議您不要將INSERT查詢與mysqli_query使用,而是出於安全原因而使用預處理語句。 您應該簽出PDO准備好的語句

首先,創建一個PDO實例。

$db = new PDO("mysql:host=localhost;port=3306;dbname=mydb", "username", "password");
$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false); //Turn off prepared statement emulation too.

使用准備好的語句,您可以使用服務器prepare語句:

$stmt = $db->prepare("
    INSERT into
        wp_postmeta
        (meta_id,post_id,meta_key,meta_value)
    values
        (?,?,?,?)
");

使用如下數組:

$values = array(
    array(',',$data[37], 'lower_electric_costs', $data[5]),
    array(',',$data[37], 'cheapest_green_electric', $data[6]),
    array(',',$data[37], 'contract_type', $data[11]),
);

接下來,您將發出一系列execute語句:

foreach ($values as $v) {
    $stmt->execute($v);
}

最后,關閉該語句,以便可以執行更多語句:

$stmt->closeCursor();

暫無
暫無

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

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