我不明白为什么这段代码被打破了。我正在将jQuery数组发送到php脚本。

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],则会得到适当的元素。

我想念什么?非常感谢您的协助。

最佳答案

当您打算以一种完全不合适的方式构建sql语句时,您遇到的真正问题是您正在尝试echo数组。那是无法做到的。另外,您不能使用串联运算符(.)将数组追加到字符串。您必须对数组进行编码(serialize / unserialize)进行存储;或规范化数据库...

不过,您可以使用print_rvar_dumpvar_exportforeach构造。

实际上,使用parameterized queries;您将变得更加幸福。

关于php - 为什么serialize()破坏了我的更新?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18278078/

10-14 13:07