我无法理解为什么这段代码会破坏。我正在向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] ,我会得到相应的元素。
我错过了什么?非常感谢任何帮助。
答案 0 :(得分:0)
当你以完全不合适的方式构建sql语句时,你遇到麻烦的真正问题是你正试图echo
一个数组。那是做不到的。 Alos,您不能使用连接运算符(.
)将数组附加到字符串。您必须对数组进行编码(serialize / unserialize)以进行存储;或规范化数据库...
您可以使用print_r,var_dump,var_export或foreach构造来执行此操作。
真的,请使用parameterized queries;你会变得非常好。