我愿意将数组作为普通文本插入数据库。
$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 ."'");
有人知道如何解决这个问题吗?
非常感谢您提前;)
答案 0 :(得分:3)
PHP数组或对象或其他复杂数据结构无法在正在运行的PHP脚本之外传输,存储或以其他方式使用。如果要将这种复杂的数据结构保留在单个运行的脚本之外,则需要对其进行序列化。这只是意味着将结构放入一个“较低的公分母”,可以通过PHP之外的其他东西来处理,比如数据库,文本文件,套接字。标准PHP函数serialize只是表达这种事物的一种格式,它将数据结构序列化为PHP独有的字符串表示形式,并且可以使用unserialize反转为PHP对象。还有许多其他格式,如JSON或XML。
答案 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中保存对象。