gpt4 book ai didi

javascript - ajax 的小问题。错误函数被执行

转载 作者:行者123 更新时间:2023-11-29 02:40:05 26 4
gpt4 key购买 nike

我对 ajax 和 mysql 有点问题。我想通过 ajax 将相同的数据保存到数据库。

Javascript:

$.ajax({
type : "POST",
url : url_save,
async : false,
data : { item : nr, var : text },
success: function(result_save){
if (result_save.includes('Error')) {
alert("!!! Error !!!");
}
},
error: function(xhr, textStatus, errorThrown) {
alert("!!! Error !!!");
}
});

我的 PHP 文件如下所示: PHP:

<?php
require "config.inc.php";
$db = mysqli_connect(DBHOST, DBUSER, DBPASS, DBNAME) or die ('Error');
$db->set_charset("utf8");
$sql="INSERT INTO tbl (item, var) VALUES ('$_POST[item]','$_POST[var]')";
if (!mysqli_query($db,$sql))
{
return 'Error';
die();
}

mysql_close($db);
return 'i.O.';
?>

它保存到数据库中,但是每次都会执行ajax的error-function。怎么了?

最佳答案

一些观察:

  • jcubic 是正确的 - 您不想使用 JS 关键字作为参数名称。

  • catcon 也是正确的。使用准备好的语句 FAR 比直接将变量读入您的 SQL 文本更可取。

  • 即使 mysqli_query() 返回 0,您仍然想执行 mysql_close($db),不是吗?

  • 你也想知 Prop 体的错误,不是吗?

建议:

PHP:

<?php
require "config.inc.php";
$conn = new mysqli(DBHOST, DBUSER, DBPASS, DBNAME);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$stmt = $conn->prepare("INSERT INTO tbl (item, var) VALUES (?, ?)");
$stmt->bind_param("is", $_POST[item_id], $_POST[item_value]);
if (!$stmt->execute()) {
$result = "Execute failed: (" . $stmt->errno . "): " . $stmt->error;
}
$stmt->close();
$conn->close();
return ($result) ? 'Success' : $result;
...

JS:

$.ajax({
type : "POST",
url : url_save,
async : false,
data : { item_id: nr, item_value: text },
success: function(result_save){
if (result_save === 'Success') {
console.log('Insert was successful', nr, value);
} else {
alert('mySql Error: ', JSON.stringify(result_save));
}
},
error: function(xhr, textStatus, errorThrown) {
alert('XHR Exception: ' + textStatus + ', ' + JSON.stringify(errorThrown));
}
});

关于javascript - ajax 的小问题。错误函数被执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54543633/

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