我是新来的php &真的迷路了。我正在尝试使用多个阵列的一个JavaScript对象&发送给我的PHP PDO来更新我的数据库。我已将我的表单中的所有数据收集到一个JavaScript对象中。我使用json.stringify将对象转换为这种格式。 CONSOLE.LOG(updateString)生产:发送Javascript对象到PDO更新
[{"id":"20","type":"2","content":"3","name":"2","user":"1"},
{"id":"21","type":"2","content":"4","name":"3","user":"1"}]
我使用AJAX发送给我的PHP:
$.ajax({
url: 'add.php',
data: {
updates: updateString
},
type: 'POST',
datatype: 'application/json',
success: function (response) {
console.log(response);
},
error: function (e) {
console.log(e);
}
});
然后在我的PHP代码,我解码JSON &我试图更新我的数据库:
$db= new PDO ('mysql:dbname=xxxx;host=localhost', 'xxxx', 'xxxx');
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$updates = JSON_decode($_POST["updates"], true);
try {
$sql = ("UPDATE tableName SET type=:type, content=:content, name=:name, user=:user WHERE id=:id");
$stmt = $db->prepare($sql);
$stmt->bindParam(":id", $updates['id'], PDO::PARAM_STR);
$stmt->bindParam(":type", $updates['type'], PDO::PARAM_STR);
$stmt->bindParam(":content", $updates['content'], PDO::PARAM_STR);
$stmt->bindParam(":name", $updates['name'], PDO::PARAM_STR);
$stmt->bindParam(":user", $updates['user'], PDO::PARAM_STR);
$stmt->execute();
}
catch(PDOException $e) {
echo "The changes could not be made.<br>".$e->getMessage();
}
我没有得到抛出,所以我不知道从哪里开始的任何错误,但我的数据库没有更新。我知道我需要在我的PHP foreach循环,但我试图让单个数组先通过,然后再复杂化它。任何帮助表示赞赏。谢谢!
请添加代码:'的error_reporting(E_ALL);在开始时'。数据没有被保存到数据库中? –
那么你有什么问题 - 为我写适当的代码? –
我的问题是你能告诉我我哪里出错了。 – heat222