什么是等同于PHP多线程查询的Codeigniter
使用PHP-我编写了一个类似以下内容的多线程查询:什么是等同于PHP多线程查询的Codeigniter,php,codeigniter,multi-query,Php,Codeigniter,Multi Query,使用PHP-我编写了一个类似以下内容的多线程查询: $MySQL_string .= "UPDATE `table` SET `name` = 'joe' WHERE `ID` = '1'"; $MySQL_string .= "UPDATE `table` SET `name` = 'Jane' WHERE `ID` = '2'"; if($DB->mysqli->multi_query($MySQL_string) === TRUE){ echo"Query execu
$MySQL_string .= "UPDATE `table` SET `name` = 'joe' WHERE `ID` = '1'";
$MySQL_string .= "UPDATE `table` SET `name` = 'Jane' WHERE `ID` = '2'";
if($DB->mysqli->multi_query($MySQL_string) === TRUE){
echo"Query executed successfully<BR>";
}else{
echo"Error executing query: ".$DB->mysqli->error;
die();
}
$data = array(
array(
'name' => 'Joe' ,
'ID' => '1'
),
array(
'name' => 'Jane' ,
'ID' => '2'
)
);
$MySQL\u string.=“UPDATE`table`SET`name`='joe',其中`ID`='1';
$MySQL\u string.=“UPDATE`table`SET`name`='Jane',其中`ID`='2';
if($DB->mysqli->multi\u查询($MySQL\u字符串)==TRUE){
echo“查询已成功执行
”;
}否则{
echo“执行查询时出错:”..DB->mysqli->Error;
模具();
}
什么与Codeigniter中PHP的multi_query()等效
如果没有等价项-我将如何在Codeigniter中使用multi_query()?可能使用事务
$this->db->trans_start();
$this->db->query('AN SQL QUERY...');
$this->db->query('ANOTHER QUERY...');
$this->db->query('AND YET ANOTHER QUERY...');
$this->db->trans_complete();
您可以使用Codeigniter函数
$this->db->update_batch()
,您可以向其传递数组或对象
要完成您的示例,可以如下所示:
$MySQL_string .= "UPDATE `table` SET `name` = 'joe' WHERE `ID` = '1'";
$MySQL_string .= "UPDATE `table` SET `name` = 'Jane' WHERE `ID` = '2'";
if($DB->mysqli->multi_query($MySQL_string) === TRUE){
echo"Query executed successfully<BR>";
}else{
echo"Error executing query: ".$DB->mysqli->error;
die();
}
$data = array(
array(
'name' => 'Joe' ,
'ID' => '1'
),
array(
'name' => 'Jane' ,
'ID' => '2'
)
);
然后使用:
$this->db->update_batch('mytable', $data, 'ID');
更多信息:我不确定我是否理解-为什么我需要交易?在我的情况下,不需要回滚任何内容。事务:用于半运行查询。谢谢-但这里不需要事务。除非这是multi_query()的Codeigner中的唯一选项。我只是在寻找我看到的multi_query()的等价物。batch语句中的“ID”充当WHERE
ID
='2'等,批使用WHENID
='2'等。。。明亮的我想知道这在速度上与PHP multi_query()相比如何,我想知道为什么Codeigniter没有将multi_query()作为其查询生成器的一部分?