我在一个测试php网站的页面上调用了一个函数,以显示一个html表单来记录要通过ajax提交到我的SQL数据库的数据,但由于某些原因没有插入任何数据。我有所有需要的引导,js,ajax链接在一个包含的header.php中,我有其他表单提交到测试网站上的同一数据库中的表,这些都没有问题,所以数据库连接看起来很好,这就是为什么我很难弄清楚为什么数据没有被插入。
这是一个在MAMP上使用MySQL 5,PHP5的本地主机测试服务器。
我的文件包含在被调用时显示html条目表单的代码,它在functions.php中:
<?php
session_start();
$link = mysqli_connect("localhost", "user", "pass", "tables");
if (mysqli_connect_errno()) {
print_r(mysqli_connect_error());
exit();
}
// other code ...
function displayTextInput() {
global $link;
echo '
<div class="form">
<div class="form-group">
<textarea class="form-control" id="textDesc" placeholder="Description"></textarea>
<textarea class="form-control" id="textType" placeholder="Type"></textarea>
</div>
<button id="postTextButton" class="btn btn-primary">Post Text</button>
</div>';
}
?>
我的ajax调用是在footer.php中的脚本中进行的:
<script>
$("#postTextButton").click(function() {
$.ajax({
type: "POST",
url: "actions.php?action=postText",
data: {textDesc: $("#textDesc").val(), textType: $("#textType").val()},
success: function(result) {
if (result == "1") {
alert("ajax successful");
} else if (result != "") {
alert("ajax unsuccessful");
}
}
})
})
</script>
最后,我的SQL在一个actions.php中:
if ($_GET['action'] == 'postText') {
if (!$_POST['TextDesc']) {
echo "Your text description is empty!";
} else {
$textDesc = mysqli_real_escape_string($link, $_POST['textDesc']);
$textType = mysqli_real_escape_string($link, $_POST['textType']);
$userIDForTable = mysqli_real_escape_string($link, $_SESSION['id']);
mysqli_query($link, "INSERT INTO text (`description`, `type`, `userid`) VALUES ('$textDesc', '$textType', '$userIDForTable')");
echo "1";
}
}
我可以回显actions.php else {}部分中的语句,因此代码肯定与之相关,但我真的不知道为什么。我甚至将上面的代码链接到同一个数据库中的不同php表中,并让它正常工作,所以我就是想不通为什么它不能工作。在控制台中我也看不到任何错误。任何帮助都将不胜感激。
谢谢
发布于 2019-05-15 06:48:48
单词text在MySQL中是一个特殊的单词,我认为您的查询抛出了一个错误。将这段代码添加到您的insert语句之后:
var_dump(mysqli_error($link));
我知道我应该以评论的形式发表这篇文章,但我没有足够的观点来发表评论。
https://stackoverflow.com/questions/56139461
复制相似问题