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

时间:2014-02-27 07:00:10

标签: php mysql sql-server string multidimensional-array

我正在尝试构建一个可以在一个查询中插入多行的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>

2 个答案:

答案 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, ",").";";