我正在尝试将3位整数数组插入MySQL数据库(例如'301','302'等)。该数组使用jQuery,Ajax和JSON传递到PHP脚本中。这一点(通过'console.log'函数判断)似乎工作正常。当我尝试解码JSON字符串时,问题出现在另一端。
我希望数组中的每个项目都进入一个单独的列,但目前插入到列中的所有项目都是数字“0”。
代码如下:
jQuery的:
var modules
$('#createbutton').click(function(){
$('#l3 :checkbox:checked').each(function(i){
var l3modules = $(this).attr('value');
modules.push(l3modules);
});
var modulestransmit = JSON.stringify(modules);
console.log(modulestransmit);
$.ajax({
url: "newaccount.php",
type: "POST",
data: { modules: modulestransmit },
});
});
PHP:
$modules = $_REQUEST['modulestransmit']);
$insertmodules = json_decode($modules, true);
if(mysql_query("INSERT INTO level3 (mod1, mod2) VALUES ('$insertmodules[0]', '$insertmodules[1]')")) {
echo "Successfully inserted";
}
else {
echo "Insertion Failed";
}
数据库中的结果是:
mod1:0
mod2:0
答案 0 :(得分:4)
您正在使用模块作为请求中的参数名称而不是modulestransmit,因此将PHP的第一行更改为
$modules = $_REQUEST['modules'];
你还需要在字符串中的变量名称周围加上大括号(在PHP中用双引号引用数组时至关重要)。
"INSERT INTO level3 (mod1, mod2) VALUES ('{$insertmodules[0]}', '{$insertmodules[1]}')"
那应该这样做。