Javascript 将数据从ajax传递到php到mysql是一个奇怪的问题
早些时候我问了一个类似的问题,但我想我理解错了,我学到了更多关于安全的知识,而不是解决我遇到的问题。我在ajax请求中将数据发布到php脚本中,然后将其提交到数据库时遇到了问题 只是要明确一点,该网站是本地的,我将没有人创建一个帐户除了我,我将是唯一一个访问它。一旦我完成这一步,我会确保安全 当前错误:无,但警报成功后没有数据(“成功”+数据) 我已经在谷歌上搜索/工作了10多个小时了。。。任何帮助都将不胜感激,因为我只是在学习 以下是我的Javascript:Javascript 将数据从ajax传递到php到mysql是一个奇怪的问题,javascript,php,mysql,ajax,Javascript,Php,Mysql,Ajax,早些时候我问了一个类似的问题,但我想我理解错了,我学到了更多关于安全的知识,而不是解决我遇到的问题。我在ajax请求中将数据发布到php脚本中,然后将其提交到数据库时遇到了问题 只是要明确一点,该网站是本地的,我将没有人创建一个帐户除了我,我将是唯一一个访问它。一旦我完成这一步,我会确保安全 当前错误:无,但警报成功后没有数据(“成功”+数据) 我已经在谷歌上搜索/工作了10多个小时了。。。任何帮助都将不胜感激,因为我只是在学习 以下是我的Javascript: var firstname =
var firstname = String($("#firstname").val());
var lastname = String($("#lastname").val());
var username = String($("#username").val());
var email = String($("#email").val());
var password = String($("#password").val());
以下是AJAX:
$.ajax({
type: 'POST',
url: 'create_account.php',
data: {firstname_php: firstname,
lastname_php: lastname,
username_php: username,
email_php: email,
password_php: password},
success: function(data) {
alert("success" + data);
}
});
创建_account.php:
$firstname = $_POST['firstname_php'];
$lastname = $_POST['lastname_php'];
$username = $_POST['username_php'];
$email = $_POST['email_php'];
$password = $_POST['password_php'];
echo "$firstname";
// Create connection
$connection = mysqli_connect("localhost","root","root","MyDatabase");
// Check connection
if (mysql_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$sql = "INSERT INTO users (user_id, user_firstname, user_lastname, user_username, user_email, user_password) VALUES (0, '$firstname', '$lastname', '$username', '$email', '$password)'";
$result = mysqli_query($connection,$sql);
mysqli_close($connection);
您的查询中有一个报价出现在错误的位置:
VALUES (0, '$firstname', '$lastname', '$username', '$email', '$password)'";
^^^
试试这个:
VALUES (0, '$firstname', '$lastname', '$username', '$email', '$password')";
在javascript和ajax中,一切看起来都很好(至少我可以在没有看到html源代码的情况下看到) 但是,您至少有一个php错误;mysql\u connect\u errno不存在,并且不会针对mysqli连接器进行调用 因此,请尝试以下方法:
$firstname = $_POST['firstname_php'];
$lastname = $_POST['lastname_php'];
$username = $_POST['username_php'];
$email = $_POST['email_php'];
$password = $_POST['password_php'];
echo "$firstname";
// Create connection
$connection = mysqli_connect("localhost","root","root","MyDatabase");
// Check connection
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$sql = "INSERT INTO users (user_id, user_firstname, user_lastname, user_username, user_email, user_password) VALUES (0, '$firstname', '$lastname', '$username', '$email', '$password')";
$result = mysqli_query($connection,$sql);
mysqli_close($connection);
我没有使用mysqli连接器,但除此之外,它看起来不错。如果它仍然不起作用,我建议启用完整的php调试信息-例如,将其添加到php文件的顶部:
ini_set("display_errors", "1");
error_reporting(E_ALL);
编辑:正如hanlet所说,您的单引号/apos位置错误。(在我的示例代码中已修复)请显示内部服务器错误。POST 500(内部服务器错误)
mysql\u connect\u errno
->mysqli\u connect\u errno
更改了它,现在我没有错误,数据库中也没有任何内容。“在这10多个小时内”---对于每个错误,首先要做的事情是检查日志。