Php 使用多维数组构建查询字符串
我正在尝试构建一个sql字符串,它可以在一个查询中插入多行。请查看以下代码。Php 使用多维数组构建查询字符串,php,mysql,sql-server,string,multidimensional-array,Php,Mysql,Sql Server,String,Multidimensional Array,我正在尝试构建一个sql字符串,它可以在一个查询中插入多行。请查看以下代码。 我有一个数组叫做 conversion\u rates类似于这样的array(1){[11]=>float(507.6)} 我试图执行的代码是这样的 public function updateExRate(){/*Updates the table in the DB with exchange rates*/ $sql = 'INSERT INTO conversor '. '(
我有一个数组叫做
conversion\u rates
类似于这样的array(1){[11]=>float(507.6)}
我试图执行的代码是这样的
public function updateExRate(){/*Updates the table in the DB with exchange rates*/
$sql = 'INSERT INTO conversor '.
'( Sl_no , Ex_rate,Idmoneda,Time_update) VALUES'.foreach($this->conversion_rates as $k =>$v){.' ( NULL ,'.$v.
','.$k.','.time().');'};
var_dump($this->conversion_rates);
echo 'Running... '.$sql.'<br>';
$this->parent->parent->database->query($sql);
}
公共函数updateExRate(){/*使用汇率更新数据库中的表*/
$sql='INSERT INTO conversor'。
“(Sl_no,Ex_rate,Idmoneda,Time_update)值”。foreach($k=>v)的转换率为“{”。(NULL,.$v。
“,”.$k.,“.time()”;”};
var_dump($此->转换率);
回显“正在运行…”。$sql。“
”;
$this->parent->parent->database->query($sql);
}
因此,这是一个更新数据库的函数,我试图在其中构建一个sql语句,该语句插入多行,并在字符串中使用foreach循环的值,这就是我得到错误的地方。您可以尝试以下操作:
$sql = 'INSERT INTO conversor "( Sl_no , Ex_rate,Idmoneda,Time_update) VALUES ';
foreach($this->conversion_rates as $k =>$v)
{
$sql .= '( NULL ,'.$v.','.$k.','.time().');';
}
$sql .= '"}';
您可以使用以下选项:
$sql = 'INSERT INTO conversor ( `Sl_no` , `Ex_rate,Idmoneda`,`Time_update`) VALUES ';
foreach($this->conversion_rates as $k =>$v)$sql.="( NULL ,'$v','$k',".time()."),";
$sql=rtrim($sql, ",").";";
使用mysql批插入我只看到JDBC示例没有php批处理示例代码中有一个小错误:)$sql='(空,'.$v','.$k','.time());';它应该是$sql.='(空,'.$v.','.$k.','.time()。);';我的意思是“.”丢失是因为字符串被覆盖了。这更好:)