将-large-array中的值插入mysql?

时间:2014-09-07 12:03:30

标签: php mysql arrays insert

        stdClass Object
(
    [ids] => Array
        (
            [0] => 12345671
            [1] => 12345672
            [2] => 12345673
            [3] => 12345674
            [4] => 12345675
            [5] => 12345676
            [6] => 12345677
                 .
                 .
                 .                 
                 .
        )

我有一个包含用户ID的长数组。 我想将每个数组作为新行插入到mysql中。怎么能这样做?

我试过这个但是没有用

$sql = array(); 
foreach( $content as $row ) {
    $sql[] = '("'.$con->real_escape_string($row['ids']).'")';
}
mysql_query('INSERT INTO table (ids) VALUES '.implode(',', $sql));

1 个答案:

答案 0 :(得分:1)

这样做会导致列数不匹配 - 而table是保留字,因为您的结果查询看起来像

INSERT INTO `table` (ids) VALUES 12345676, 12345677

这是错误的。

您需要结束查询;

INSERT INTO `table` (ids) VALUES (12345676), (12345677)

要使用PHP实现此目的,我们可以执行以下操作;

<?php

$a = array("ids" => array(1,2,3,4,5,6,7,8,9));

$input_lines = implode(",", $a['ids']);

echo preg_replace("/[0-9]/", "($0)", $input_lines);

Preview

这将产生最终的PHP代码

<?php

$a = array("ids" => array(1,2,3,4,5,6,7,8,9));
$input_lines = implode(",", $a['ids']);
$sql = "INSERT INTO `table` (ids) VALUES ". preg_replace("/[0-9]/", "($0)", $input_lines);

Preview