我是新來的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