javascript张贴到php for mysql插入记录


javascript post to php for mysql insert record

我读了很多关于这方面的教程,但似乎无法让它发挥作用-我在服务器上有以下PHP文件:

<?php
    $host_name  = "";
    $database   = "";
    $user_name  = "";
    $password   = "";
    $connect = mysqli_connect($host_name, $user_name, $password, $database);
    $user = $_POST['user'];
    $sports = $_POST['sports'];
    $location = $_POST['location'];
    if (mysqli_connect_errno())
    {
        echo "Failed to connect to MySQL: " . mysqli_connect_error();
    }
    $sql = "UPDATE `userActivityLocation` WHERE user='$user' SET sports='$sports', location='$location'";
    $result=mysql_query($sql);
?>

我试了好几种方法都没有用,不知道我做错了什么!如有任何建议,我们将不胜感激,谢谢!

编辑:我已经按照morgeunder的建议尝试了以下操作,但我仍然看不到数据库中创建的任何记录。

这是提交按钮的点击监听器:

$('#register').click(function () {
        console.log("Ready! Getting the user details.");
        username = document.getElementById('login').value;
        password = document.getElementById('password').value;
        email = document.getElementById('email').value;
        window.localStorage.setItem("user", username);
        console.log("Username: ", username);
        console.log("Password: ", password);
        console.log("E-Mail: ", email);
        var params, connection;
        params = {
            login: username,
            password: password,
            email: email
        };
        //console.log("Params: ", params);
        console.log("Creating new user");
        QB.users.create(params, function (err, result) {
            console.log("Result: ", result.toString());
            // callback function
            alert(username.toString());
            var usernamePost = username.toString();
            $.post("http://www.baseurl.co.uk/API/users.php", { user: usernamePost }, function (data) {
                console.log(data);
                console.log("HERE");
            });
            window.location = "sportsSelector.html"
        });
    });

您已经说过,您想要插入记录,但您使用了UPDATESQL命令。这就是为什么没有创建记录。

试试这个:

$sql = "INSERT INTO `userActivityLocation`(user,sports,location) VALUES ('$user', '$sports', '$location')";

还有一些事情需要考虑:

  • jQuery肯定比普通的老xhr对象更容易。它为您处理跨浏览器问题
  • 如果API位于客户端之外的其他服务器上,则应在服务器站点上设置某种交叉源过滤器(您可以在.htaccess中这样做
  • 从字符串中"粘合"SQL是不安全的,因为可能存在SQL注入。准备好的陈述就是这个问题的答案

已解决!在你们这些可爱的人的帮助下,但最终的答案是一个完全独立的、不那么明显的问题。事件正在启动,帖子正在启动,服务器端代码很好,javascript在修复后也很好,但随后它被window.location调用粗暴地打断了!这就是破坏交易的原因。