1
我正試圖使用POST
和AJAX
將數據保存到數據庫中。該腳本作爲Firefox的用戶腳本運行。當我運行腳本時,沒有顯示錯誤,數據庫中也沒有顯示任何錯誤。javascript post to database
PHP
$db_connection = new PDO("mysql:host=$hostname;dbname=$database", $username, $password);
//$db_connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_SILENT);
//$db_connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
//$db_connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$insert_key = $db_connection->prepare("INSERT into userstats (key, match, expire) VALUES (?, ?, ?, ?)");
$insert_key->bindParam(1, $_POST["user"]);
$insert_key->bindParam(2, $_POST["score"]);
$insert_key->bindParam(3, $_POST["location"]);
$insert_key->bindParam(4, $_POST["pointtime"]);
$insert_key->execute();
$db_connection = null;
echo "saved to database!";
} catch(PDOException $e) {
echo $e->getMessage();
}
的JavaScript
xhr = new XMLHttpRequest();
xhr.open("POST", "stats.php", true);
xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhr.setRequestHeader("Content-length", params.length);
xhr.setRequestHeader("Connection", "close");
xhr.onreadystatechange = function() {
if (xhr.readyState == 4 && xhr.status == 200) {
console.log(xhr.responseText);
}
}
var params = "?user=james&score=5&location=homepage&pointtime=1350249055";
xhr.send(params);
哇我真不敢相信我錯過了那個。小時和測試,它來到這哈哈。我也必須在POST上使用mysql_real_escape_string,或者PDO如何處理? –
@ Mr.1.0不,你不使用'mysql_real_escape_string()',因爲這是完全不同的API的一部分。綁定參數在內部處理。我剛剛更新了,'MATCH'也是保留的,必須加引號。 –
當您處於這種狀態時,最好始終引用列名和表格以防止陷入下一個預留關鍵字問題。 – Sven