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));
答案 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);
这将产生最终的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);