Php 如何缩小插入和打印查询?

Php 如何缩小插入和打印查询?,php,mysql,Php,Mysql,我有两个PHP/SQL函数,我想知道如何缩小它们。我希望将3个insert命令作为单个$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

我有两个PHP/SQL函数,我想知道如何缩小它们。我希望将3个insert命令作为单个$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>";
mysql\u query($import9)或die(“mysql\u error()”);
打印$import9。“
”; mysql\u query($import10)或die(“mysql\u error()”); 打印$import10。“
”; mysql\u query($import11)或die(“mysql\u error()”); 打印$import11。“
”;
我仍然在学习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\u query
,而是出于安全原因使用准备好的语句。你应该退房并离开

首先,创建一个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.
使用已准备好的语句,您将
在服务器上准备
您的语句:

$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();

您可以将其组合为一个查询,如下所示:

$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\u query
,而是出于安全原因使用准备好的语句。你应该退房并离开

首先,创建一个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.
使用已准备好的语句,您将
在服务器上准备
您的语句:

$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();

如果您仍然直接在查询中插入内容,那么使用
mysqli
不会给您带来很多好处。使用占位符。没错,但他只是在学习。不过,我们已经为这类事情做了准备。确切地说:这是他应该学习使用占位符的时候,所以他已经习惯了。从一开始就做好。修改为包括PDO和准备好的声明概述。好吧,这给我的一天增添了全新的困惑:(如果你仍然直接在查询中插入内容,那么使用
mysqli
不会给你带来很多好处。使用占位符。没错,但他只是在学习。不过,为这类事情做了准备。确切地说:这是他应该学习使用占位符的时候,所以他已经养成了习惯。从一开始就做。Modified包括PDO和准备好的声明概述。好吧,这给我的一天增添了全新的混乱:(