将PHP数组作为文本插入MySQL数据库

时间:2014-02-03 17:56:11

标签: php mysql arrays

我愿意将数组作为普通文本插入数据库。

$subjectcodes[1] = "";
$subjectcodes[2] = "";
$subjectcodes[3] = "";
$subjectcodes[4] = "";
$subjectcodes[5] = "";
$subjectcodes[6] = "";
$subjectcodes[7] = "";

等...

我给我的数组一个名为list_update的字符串。 所以你得到了这个(我有“\”所以它不认为它是PHP)

    $list_update="
    \$subjectcodes\[1\] = \"\";
    \$subjectcodes\[2\] = \"\";
    \$subjectcodes\[3\] = \"\";
    \$subjectcodes\[4\] = \"\";
    \$subjectcodes\[5\] = \"\";
    \$subjectcodes\[6\] = \"\";
    \$subjectcodes\[7\] = \"\";
"

现在当我使用我的查询将我的列表输入到表中时,它什么也没做。

 mysqli_query($connect,"INSERT INTO subjects (list)
        VALUES (" . $list_update . ") WHERE user='". $userid ."'");

有人知道如何解决这个问题吗?

非常感谢您提前;)

2 个答案:

答案 0 :(得分:3)

  

PHP数组或对象或其他复杂数据结构无法在正在运行的PHP脚本之外传输,存储或以其他方式使用。如果要将这种复杂的数据结构保留在单个运行的脚本之外,则需要对其进行序列化。这只是意味着将结构放入一个“较低的公分母”,可以通过PHP之外的其他东西来处理,比如数据库,文本文件,套接字。标准PHP函数serialize只是表达这种事物的一种格式,它将数据结构序列化为PHP独有的字符串表示形式,并且可以使用unserialize反转为PHP对象。还有许多其他格式,如JSON或XML。

From here

答案 1 :(得分:2)

执行以下操作:

$subjectcodes[1] = "";
$subjectcodes[2] = "";
$subjectcodes[3] = "";
$subjectcodes[4] = "";
$subjectcodes[5] = "";
$subjectcodes[6] = "";
$subjectcodes[7] = "";

json_encode($subjectcodes);

插入您的数据库。

从DB中获取后,然后按如下方式对其进行解码:

$array = json_decode($yourArrayItemFromDB);

你将拥有像@ subjectcodes这样的原始数组。

使用这种方式,您不仅可以保存数组,还可以在DB中保存对象。