【发布时间】:2020-05-04 05:17:40
【问题描述】:
我在 footer.php 文件中使用 ajax 调用:
$.ajax({
type: "POST",
url: "try.php?action=loginSignup",
data: "email=" + $("#email").val() + "&password=" + $("#password").val() + "&loginActive=" + $("#loginActive").val(),
success: function(result) {
alert(result);
}
})
在 try.php 文件中,当插入新行完成时,我试图回显 hello 的值:
<?php
if($_POST['loginActive']=='1'){
$error="";
$query = "SELECT * FROM users WHERE email = '". mysqli_real_escape_string($link, $_POST['email'])."' LIMIT 1";
// echo $query;
$result = mysqli_query($link, $query);
if (mysqli_num_rows($result) > 0){
$error = "That email address is already taken.";
}
if($error!=""){
echo $error;
}
else{
$query = "INSERT INTO users (`email`, `password`) VALUES ('". mysqli_real_escape_string($link, $_POST['email'])."', '". mysqli_real_escape_string($link, $_POST['password'])."')";
////This is the part where I am facing issues
if(mysqli_query($link,$query)){
echo "hello";
////anything echoed here is not getting alerted by browser, but the query still runs successfully and the new row is being added to my database.
}
else{
echo "query couldn't be answered";
}
}
}
?>
当我运行包含 footer.php 的 index.php 文件时,页面不会提醒任何值,但是会根据查询在我的数据库中创建新行。我尝试了所有方法,但无法弄清楚为什么当查询成功完成时浏览器没有提醒我的“你好”消息。此外,我使用不同的简单 SELECT 查询进行了尝试,并且“hello”消息被警告,没有任何问题。我猜 INSERT 查询是这里造成问题的原因。任何帮助将非常感激。
【问题讨论】:
-
您的数据是否已插入数据库?
-
是的,它被插入了。
-
我认为你最后多了一个粗括号
} -
不,我刚刚检查过了。很好……这是第一个if条件。
-
您尝试过什么调试问题?所有数据都按预期到达服务器吗?此外,请不要使用不安全的 INSERT 查询,准备好的语句可以帮助您提供更多的安全性来防止 SQL 注入