gpt4 book ai didi

php - 使用 JQuery AJAX 和 php 获取数据到 mysql 数据库

转载 作者:搜寻专家 更新时间:2023-10-30 20:33:28 25 4
gpt4 key购买 nike

我正在尝试使用 AJAX 将数据插入我的数据库,但无法正常工作。我可以验证我是否已连接到数据库,但是当我单击它时不会插入数据。谢谢

通过点击功能,我获取了我想插入到我的数据库中的 2 个参数。

$( "#q_answer1" ).click(function () {
var q_no = $("#q_no").val();
var main_no = $("#total_no").val();

$.ajax({
url: "server.php",
type: "post",
async: false,
data: {
"done": 1,
"username": q_no,
"comment": main_no

},
success: function(){
$("#q_no").val('');
$("#total_no").val('');
}
});
});

这是 php 文件,首先连接到 ddbb 并使用 mysql_query 插入 2 个值。

<?php
include("dbh.php");
if (isset($_POST['done'])) {
$q_no = mysql_escape_string($_POST['username']);
$total_no = mysql_escape_string($_POST['comment']);

mysql_query("INSERT INTO variables(id, names) VALUES('{$q_no}', '{$total_no}')");
exit();
}
?>

html是这样的:

<div id="total_no">1</div>
<div id="q_answer1" class="btn left_b">yes</div>

最佳答案

我认为您应该使用 PDO 来连接数据库,而不是使用 PHP 不再支持的旧驱动程序。使用 PDO,您可以使用准备好的语句来防止 sql injections

PDO tutorial

filter_var() Constants

dbh.php

$servername = "localhost";
$username = "user";
$password = "pass";
$dbname = 'db';

try {

$db = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
// set the PDO error mode to exception
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch(PDOException $e)
{
exit($e->getMessage());
}

?>

serve.php

<?php

include("dbh.php");
if (isset($_POST['done'])) {

$q_no = filter_var($_POST['username'], FILTER_SANITIZE_STRING);
$total_no = filter_var($_POST['comment'], FILTER_SANITIZE_STRING);

try {

$stmt = $db->prepare("INSERT INTO variables(id, names) VALUES(?, ?)");
$stmt->execute(array($q_no, $total_no));

echo json_encode(["message" => "success"]); // sends success response to front-end

} catch (\Exception $e) {
echo json_encode(["message" => $e->getMessage() ]); // sends error response to front-end
}


}
?>

在您的 ajax 中检查数据是否已插入。

$("#q_answer1").click(function() {
var q_no = $("#q_no").val();
var main_no = $("#total_no").val();

$.ajax({
url: "file.php",
type: "post",
async: false,
data: {
"done": 1,
"username": q_no,
"comment": main_no

},
success: function(data) {

const respose = JSON.parse(data);

if (respose.message === 'success') { // data was inserted

$("#q_no").val('');
$("#total_no").val('');

}else {
alert(respose.message); // some error has occured
}
}
});
});

关于php - 使用 JQuery AJAX 和 php 获取数据到 mysql 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55790259/

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