Php 是否将-large-array中的值插入mysql?
我有一个包含用户ID的长数组。 我想将每个数组作为新行插入mysql。ı怎么能做到这一点 我试过这个,但不起作用Php 是否将-large-array中的值插入mysql?,php,mysql,arrays,insert,Php,Mysql,Arrays,Insert,我有一个包含用户ID的长数组。 我想将每个数组作为新行插入mysql。ı怎么能做到这一点 我试过这个,但不起作用 stdClass Object ( [ids] => Array ( [0] => 12345671 [1] => 12345672 [2] => 12345673 [3] => 12345674
stdClass Object
(
[ids] => Array
(
[0] => 12345671
[1] => 12345672
[2] => 12345673
[3] => 12345674
[4] => 12345675
[5] => 12345676
[6] => 12345677
.
.
.
.
)
这样做会导致列计数不匹配,
table
是一个保留字,因为生成的查询类似于
$sql = array();
foreach( $content as $row ) {
$sql[] = '("'.$con->real_escape_string($row['ids']).'")';
}
mysql_query('INSERT INTO table (ids) VALUES '.implode(',', $sql));
这是错误的
你需要你的结束查询是这样的
INSERT INTO `table` (ids) VALUES 12345676, 12345677
要使用PHP实现这一点,我们可以执行以下操作:
INSERT INTO `table` (ids) VALUES (12345676), (12345677)
你试过什么吗?你被困在哪了?你为什么不努力呢?您读过我们的吗?值列表中的每一项都缺少括号:它是VALUES('12345671'),('12345672'),…
notVALUES'12345671',…
如果您的id列的数据类型为INT,则值周围也不需要单引号。使用参数化的准备语句迁移到mysqli或PDO是个好主意。
<?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
$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);