php - jquery 运行良好,但为什么没有数据发布在 db 中?
问题描述
我正在尝试使用 qjuery 和 ajax 向 php 控制器发出用户注册请求,但我很惊讶 ajax 成功警报与成功注册但是当我查看我的数据库时,没有发布任何数据!这里可能是什么问题
$(document).ready(function () {
$("#reg-btn").on('click', function(e) {
e.preventDefault()
var firstname = $("#fname").val();
var lastname = $("#lname").val();
var email = $("#email").val();
var contactNumber = $("#contact-number").val();
var password = $("#password").val();
var repeatPassword = $("#repeat-password").val();
if(!pregMatch(firstname)){
Swal.fire({
icon: 'error',
title: 'Registration Failed',
text: 'Alphabet And White Space Characters Allowed',
})
}else{
$.ajax({
url: "../controller/log-reg.php",
type: "POST",
data: {
firstname : firstname,
lastname : lastname,
email : email,
contactNumber : contactNumber,
password : password,
repeatPassword : repeatPassword,
},
success:function(data){
if(data == 'reg-failed'){
Swal.fire({
icon: 'error',
title: 'Registration Failed',
text: 'Something went wrong!, Try Again',
})
}else if(data == "email-taken"){
Swal.fire({
icon: 'error',
title: 'Registration Failed',
text: 'Email taken!, Try Again',
})
}else{
$("#register").modal("hide");
Swal.fire({
icon: 'success',
title: 'Registration successful',
text: 'You are a registred member, you can login now!',
})
// location.reload();
}
},
});
}
})
})
这是处理将数据发布到数据库的 .php 文件, 我使用准备好的语句来执行查询
<?php
error_reporting(E_ALL);
init_set('display_errors', 1);
session_start();
$conn =mysqli_connect('localhost', 'root', '', 'shopping_cart_with_paypal');
if(isset($_POST['fname'])){
$first_name = $_POST['fname'];
$last_name = $_POST['lname'];
$email = $_POST['email'];
$contact_number = $_POST['contact_number'];
$password = $_POST['password'];
$password_repeat = $_POST['password_repeat'];
$emailQuery = $conn->prepare("SELECT * FROM users WHERE email = ?");
$emailQuery->bind_param("s", $email);
$emailQuery->execute();
$result = $emailQuery->get_result();
if($result->num_rows > 0){
echo "email-taken";
;
}else{
$insert = $conn->prepare("INSERT INTO users(first_name, last_name, email, contact_number, password) VALUES (?,?,?,?,?)");
$passwordHash = md5($password);
$insert->bind_param("ssssss", $first_name , $last_name, $email, $contact_number, $passwordHash);
if($insert->execute()){
echo "reg-success";
exit();
}else{
echo "reg-failed";
}
$insert->close();
$conn->close();
}
}
解决方案
推荐阅读
- javascript - 在 express-graphql 中将 GraphQL 模式拆分为不同模块的最佳方法?
- python - 在使用 Selenium 填充表单时使用 openpyxl 读取 Excel 文件需要太长时间
- python - 在python中计算给定字符串的数字总和
- email-validation - Apache Commons Validator 1.6 API - RFC
- c - 函数返回值时释放 malloc
- flutter - Flutter:日期选择器切换到输入模式?
- dgraph - 如何让 Dgraph uid_in 使用变量输入
- reactjs - 在axios http调用反应后打开引导模式
- html - 如何在不同的.ts文件中单击按钮时调用打字稿方法?
- vuetify.js - 阻止 Vuetify 打印到控制台“[Vuetify] 图像加载失败”