我想在一个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
已插入数据库。
请参阅并建议任何可行的方法。
感谢。
答案 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