我不明白为什么这段代码被打破了。我正在将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_r,var_dump,var_export或foreach构造。
实际上,使用parameterized queries;您将变得更加幸福。
关于php - 为什么serialize()破坏了我的更新?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18278078/