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