gpt4 book ai didi

php - javascript 发布到数据库

转载 作者:行者123 更新时间:2023-11-30 13:13:46 25 4
gpt4 key购买 nike

我正在尝试使用 POSTAJAX 将数据保存到数据库中。该脚本作为 Firefox 的用户脚本运行。当我运行脚本时,没有显示任何错误,数据库中也没有任何内容。

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);

最佳答案

KEYMATCHMySQL reserved keywords , 所以你的陈述没有准备好。将它们括在反引号中以将其用作列名:

 $insert_key = $db_connection->prepare("INSERT into userstats (`key`, `match`, expire) VALUES (?, ?, ?, ?)");

至于为什么它没有抛出异常,请确保您确实将 PDO 配置为抛出异常。如果不这样做,$insert_key 将为 FALSE,您将在随后尝试绑定(bind)参数并执行它时收到 E_WARNING .

我建议确保 error_reporting() 已启用并且 display_errors 已打开,以防万一您没有抛出异常而是遇到 fatal error 导致您的脚本要终止,您至少会在 console.log()

中看到错误输出返回给 AJAX 调用方
ini_set('display_errors', 1);
error_reporting(E_ALL);

关于php - javascript 发布到数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12886833/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com