0

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

我正在尝试这种方式。

$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

请查看并建议任何可能的方法来做到这一点。

谢谢。

4

8 回答 8

4

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

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

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

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

于 2013-01-17T11:48:10.990 回答
3

您可以使用serializejson_encode

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

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

$data = implode(',', $array);
于 2013-01-17T11:47:23.033 回答
1
$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);

可以在此处找到有关 implode 的详细信息。

于 2013-01-17T11:47:32.633 回答
0

使用implode()功能:

$to_insert = implode(',', $array);
$query = mysqli_query($connection,"INSERT INTO temp (temp) VALUES('$to_insert')");
于 2013-01-17T11:47:42.037 回答
0
$query = mysqli_query($connection,"INSERT INTO temp (temp) VALUES(".join(',', $array).")");
于 2013-01-17T11:47:51.353 回答
0

尝试:

$ids = join(',',$array);
$query = mysqli_query($connection,"INSERT INTO temp (temp) VALUES('$ids')");
于 2013-01-17T11:48:14.960 回答
0

请在插入数据库之前使用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);
于 2013-01-17T11:49:36.093 回答
0

设置字段类型 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

于 2013-01-17T12:02:29.110 回答