Javascript 将数据从ajax传递到php到mysql是一个奇怪的问题

Javascript 将数据从ajax传递到php到mysql是一个奇怪的问题,javascript,php,mysql,ajax,Javascript,Php,Mysql,Ajax,早些时候我问了一个类似的问题,但我想我理解错了,我学到了更多关于安全的知识,而不是解决我遇到的问题。我在ajax请求中将数据发布到php脚本中,然后将其提交到数据库时遇到了问题 只是要明确一点,该网站是本地的,我将没有人创建一个帐户除了我,我将是唯一一个访问它。一旦我完成这一步,我会确保安全 当前错误:无,但警报成功后没有数据(“成功”+数据) 我已经在谷歌上搜索/工作了10多个小时了。。。任何帮助都将不胜感激,因为我只是在学习 以下是我的Javascript: var firstname =

早些时候我问了一个类似的问题,但我想我理解错了,我学到了更多关于安全的知识,而不是解决我遇到的问题。我在ajax请求中将数据发布到php脚本中,然后将其提交到数据库时遇到了问题

只是要明确一点,该网站是本地的,我将没有人创建一个帐户除了我,我将是唯一一个访问它。一旦我完成这一步,我会确保安全

当前错误:无,但警报成功后没有数据(“成功”+数据)

我已经在谷歌上搜索/工作了10多个小时了。。。任何帮助都将不胜感激,因为我只是在学习

以下是我的Javascript:

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多个小时内”---对于每个错误,首先要做的事情是检查日志。