我正在尝试构建一个可以在一个查询中插入多行的sql字符串,请查看以下代码。
我有一个名为
conversion_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);
}
所以这是一个更新数据库的函数,我正在尝试构建一个sql语句,它插入多行并使我在字符串中使用foreach循环的值变为惰性,这就是我得到错误的地方< / p>
答案 0 :(得分:1)
你可以试试这个:
$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 .= '"}';
答案 1 :(得分:0)
你可以用这个:
$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, ",").";";