我在这个变量中有一个数组:
$myArray;
然后我将它插入到我有文本字段的数据库中:
mysqli_query($con,"INSERT INTO myTable (thetextfield) VALUES ('$myArray')");
问题是我已经查看了表格内容,它只是说"数组" (没有引号)。
有没有办法按原样插入数组或用逗号分隔它们并插入它们?
答案 0 :(得分:4)
您可以使用implode
插入除数,例如:
$arrayString = implode(",", $myArray);
但是如果包含,
的字符串在$myArray
中,这可能会在转换回数组时导致意外结果,因为您会突然再有一个数组项。 (要将其转换回来,您可以使用explode
)
您还可以使用json_encode
将数组编码为JSON。
$arrayString = json_encode($myArray);
更安全。 (要解码回数组,请使用json_decode
)
当然你可以序列化PHP数组:
$arrayString = serialize($myArray);
此选项的结果是输出字符串只能由PHP读取,这与广泛支持的JSON不同。
(unerialize
可用于将字符串转换回数组)
答案 1 :(得分:1)
我建议您在保存之前使用serialize数组,并在从db中检索后再次反序列化,
"INSERT INTO myTable (thetextfield) VALUES ('".serialize($myArray)."')"
如果要保存逗号分隔,请使用implode函数来实现,
"INSERT INTO myTable (thetextfield) VALUES ('".implode (", ", $myArray)."')"
答案 2 :(得分:1)
使用implode
$newString = implode(",", $myArray);
"INSERT INTO myTable (thetextfield) VALUES ('$newString')"
答案 3 :(得分:0)
您无法直接将数组插入mysql,因为mysql无法识别它。
你需要使用php implode转换数组,或者你可以使用serialize或json_encode与php ..这样你也可以更容易地检索数组数据。