如何在单个字段中插入数组

时间:2013-01-17 11:46:12

标签: php mysql

我想在一个while循环的一个字段中将id存储在数据库中,如1,2,3,4,5。 我怎么能这样做。

我正在尝试这种方式。

$array = array();

while($row=mysqli_fetch_assoc($result)){
$array[] = array($row['id']);
}

$query = mysqli_query($connection,"INSERT INTO temp (temp) VALUES('$array')");
print_r($array);

这显示错误Array to string conversion,值Array已插入数据库。

请参阅并建议任何可行的方法。

感谢。

8 个答案:

答案 0 :(得分:5)

创建另一个表并在其中插入5行。

entity_id | ids
1             1
1             2
1             3
1             4
1             5

这是做这些事情的唯一正确方法

但是,如果它真的是临时表,则可能有一种方法可以避免这些插入。

答案 1 :(得分:4)

您可以使用序列化 json_encode

$data = serialize($array);
// ...or...
$data = json_encode($array);

如果数组只包含普通数字,您还可以使用 implode

$data = implode(',', $array);

答案 2 :(得分:2)

$arrays = array();

while($row=mysqli_fetch_assoc($result)){
    $arrays[] = $row['id'];
}
$arr_str  = implode(",", $arrays);
$query = mysqli_query($connection,"INSERT INTO temp (temp) VALUES('$arr_str')");
//print_r($array);

有关内爆的详细信息,请访问here

答案 3 :(得分:1)

使用implode()功能:

$to_insert = implode(',', $array);
$query = mysqli_query($connection,"INSERT INTO temp (temp) VALUES('$to_insert')");

答案 4 :(得分:1)

$query = mysqli_query($connection,"INSERT INTO temp (temp) VALUES(".join(',', $array).")");

答案 5 :(得分:1)

尝试:

$ids = join(',',$array);
$query = mysqli_query($connection,"INSERT INTO temp (temp) VALUES('$ids')");

答案 6 :(得分:1)

在插入数据库之前请使用 implode 功能: -

以下是一个例子: -

 $array = array(1,2,3);
 $comma_separated = implode(",", $array);

 echo $comma_separated; 

输出: -

  1,2,3

在你的情况下: -

    $array = array();

    while($row=mysqli_fetch_assoc($result)){
    $array[] = array($row['id']);
    }
    $comma_separated = implode(",", $array);
    $query = mysqli_query($connection,"INSERT INTO temp (temp) VALUES('$comma_separated')");
    print_r($array);

答案 7 :(得分:1)

设置字段类型varchar(255)并使用php

执行此操作
$array = array();
$value = serialize($array);

$query = mysqli_query($connection,"INSERT INTO temp (temp) VALUES('$value')");
print_r($array);

要检索值,您应该对列进行反序列化

$data = unserialize($result['temp']);

这里的结果是关联数组。 $ data是一个你不必内爆或爆炸的数组或json_encode或json_decode