Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用于mysql插入记录的php javascript post_Javascript_Php_Cordova - Fatal编程技术网

用于mysql插入记录的php javascript post

用于mysql插入记录的php javascript post,javascript,php,cordova,Javascript,Php,Cordova,我已经阅读了很多关于这方面的教程,但似乎无法实现这一点-我在服务器上有以下PHP文件: <?php $host_name = ""; $database = ""; $user_name = ""; $password = ""; $connect = mysqli_connect($host_name, $user_name, $password, $database); $user = $_POST['user'];

我已经阅读了很多关于这方面的教程,但似乎无法实现这一点-我在服务器上有以下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);
?>

您已经说过,您希望插入记录,但是您使用了
UPDATE
SQL命令。这就是为什么没有创建记录

试试这个:

$sql = "INSERT INTO `userActivityLocation`(user,sports,location) VALUES ('$user', '$sports', '$location')";
还有一些事情需要考虑:

  • jQuery肯定比普通的旧xhr对象更容易。它还为您处理跨浏览器问题
  • 如果API位于客户端以外的另一台服务器上,则应在服务器站点上设置某种类型的跨源筛选器(您可以在
    .htaccess
  • 从字符串“粘合”SQL是不安全的,因为可能存在SQL注入。准备好的语句就是这个问题的答案

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

看一看。在jQuery中使用它可能比在纯JS中更容易。打开错误报告,因为PHP会告诉您出了什么问题。您混合了mysql和mysqli函数。您不能这样做。您的代码也是一个安全噩梦。因为您对sql注入非常开放。您没有指定问题的确切原因,但从我的角度来看t、 您可能会遇到跨域问题。在数据库中插入时,您应该使用预先准备好的语句。谢谢,我知道安全问题,我从一开始就在努力,显然这不是生产代码。ThanksOkay,修复了以下问题:对于针对用户的不同php脚本,我修改了他在上面的代码^^^所以我明白了…你们能做的第一件事就是检查从服务器返回的内容。在Firefox或ChromeOpenDeveloperTools中(Ctrl+Shift+J)进入“网络”选项卡。然后单击“注册”按钮。查看返回的内容。如果您看到客户端发出的选项请求,即使您正在发布,这意味着您存在跨源问题。在浏览器上可以正常工作,但在安卓系统上无法正常工作。这让我非常沮丧!这不是一个跨源问题,因为我现在已通过启用corshtaccess,这方面工作得很好。在android中,通过logcat,我可以看到状态代码200返回正常,但我看到db,那里什么都没有。谢谢你的帮助:)状态200不是一切。当您连接MySQL失败时,状态也将为200。你有两个选择。您可以使用调试器连接到服务器(我不知道如何使用PHP实现这一点),也可以在PHP脚本中添加一些额外的日志记录,告诉您哪些工作正常,哪些失败。基本上你可以回应一切重要的事情。祝你好运非常感谢您的友好指导!将使用php。
$sql = "INSERT INTO `userActivityLocation`(user,sports,location) VALUES ('$user', '$sports', '$location')";