PHP将数组作为字符串插入mysql文本字段

时间:2014-08-27 08:55:16

标签: php mysql

我在这个变量中有一个数组:

$myArray;

然后我将它插入到我有文本字段的数据库中:

mysqli_query($con,"INSERT INTO myTable (thetextfield) VALUES ('$myArray')");

问题是我已经查看了表格内容,它只是说"数组" (没有引号)。

有没有办法按原样插入数组或用逗号分隔它们并插入它们?

4 个答案:

答案 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 ..这样你也可以更容易地检索数组数据。