Php 如何在一列中向数据库插入多个数据

Php 如何在一列中向数据库插入多个数据,php,mysql,arrays,Php,Mysql,Arrays,我想将数组数据插入数据库的一列中 我在数据库中的列是id(自动递增)&datas 在这里我尝试,我得到了错误 我想要这样的数据 id(primary)(AI)(INT) datas(varchar:255) -------- ---- 1 3001182708 2 3001182713 3

我想将数组数据插入数据库的一列中

我在数据库中的列是
id(自动递增)
&
datas

在这里我尝试,我得到了错误

我想要这样的数据

id(primary)(AI)(INT)           datas(varchar:255)
--------                       ----
       1                       3001182708
       2                       3001182713
       3                       3001183215
我试着用这个答案

致命错误:未捕获的PDO异常:SQLSTATE[21S01]:插入值列表 不匹配列列表:1136列计数与值不匹配 C:\xampp\htdocs\savelink\index.php:23堆栈跟踪中第1行的计数:

0 C:\xampp\htdocs\savelink\index.php(23):PDOStatement->execute(Array)#1{main}被抛出 第23行的C:\xampp\htdocs\savelink\index.php


问题是,每次执行循环时,都会增加preps数组的大小,因此,第二次尝试插入2个值时,查询中只指定了1列

我想这就是你想要做的。基本上,它形成整个preps数组,然后从中构建语句并执行它

$rand_post = ["3001182708", "3001182713", "3001183215", "3001183558", "3001183753"]; 

$prep = array();
foreach($rand_post as $k => $v ) {
    $prep[':'.$k] = $v;
}
print_r($prep);
$sth = $db->prepare("INSERT INTO tes (`datas`) VALUES (" . implode('), (',array_keys($prep)) . ")");
$res = $sth->execute($prep);
如果你在最后看$sth和$prep,你会发现

INSERT INTO tes (`datas`) VALUES (:0), (:1), (:2), (:3), (:4)
Array
(
    [:0] => 3001182708
    [:1] => 3001182713
    [:2] => 3001183215
    [:3] => 3001183558
    [:4] => 3001183753
)

不同的问题我想表中的
数据列的类型是什么?不清楚你在问什么,你想把所有这些数据插入一行吗?或者您想插入到不同的行中。@Pavel
varchar
@JitendraSoftgrid我正在编辑我的问题,希望您能理解
INSERT INTO tes (`datas`) VALUES (:0), (:1), (:2), (:3), (:4)
Array
(
    [:0] => 3001182708
    [:1] => 3001182713
    [:2] => 3001183215
    [:3] => 3001183558
    [:4] => 3001183753
)