我有两个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]')";
我的打印结果也是如此 - 我将如何缩小它?
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]),
);
接下来,您将发出一系列执行语句:
foreach ($values as $v) {
$stmt->execute($v);
}
最后,关闭语句,以便可以执行更多语句:
$stmt->closeCursor();