为什么serialize()会破坏我的更新?

时间:2013-08-16 16:31:30

标签: php mysql

我无法理解为什么这段代码会破坏。我正在向php脚本发送一个jQuery数组。

jQuery的:

var someArray = ["elementone", "elementtwo", "elementthree"];
$.post(addToDB.php, {thisVariable: someArray}, function (data) {alert data;});

PHP:

$someArray = $_POST['thisVariable'];
$query = 'INSERT INTO someTable SET someColumn = "' . $someArray. '"';

这是我的问题;我可以回应序列化数组:

echo serialize($someArray); 

但如果我尝试使用 serialize($ someArray)而不是 $ someArray 更新数据库,则代码会中断并且不会更新任何内容。如果它尝试回显或更新 $ someArray ,我会得到:

Array

如果我回显 $ someArray [0] ,我会得到相应的元素。

我错过了什么?非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

当你以完全不合适的方式构建sql语句时,你遇到麻烦的真正问题是你正试图echo一个数组。那是做不到的。 Alos,您不能使用连接运算符(.)将数组附加到字符串。您必须对数组进行编码(serialize / unserialize)以进行存储;或规范化数据库...

您可以使用print_rvar_dumpvar_exportforeach构造来执行此操作。

真的,请使用parameterized queries;你会变得非常好。