Php 使用多维数组构建查询字符串

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 '. '(

我正在尝试构建一个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 '.
           '( 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()。);';我的意思是“.”丢失是因为字符串被覆盖了。这更好:)