使用Jquery .ajax()&amp ;;将数据插入数据库。 PHP无法运行

时间:2017-03-11 08:37:32

标签: php jquery mysql ajax

所以我试图使用JQuery .ajax方法从表单中插入数据。在开发人员工具中,我看到请求发送到我的process.php文件,但我无法将数据添加到数据库。

的Javascript

$( document ).ready(function() {
    console.log( "ready!" );
    $("#submit").submit(function(e) {

        var url = "process.php"; // the script where you handle the form input.

        $.ajax({
               type: "POST",
               url: "process.php",
               data: $("#submit").serialize(), // serializes the form's elements.
               success: function(data){
                   alert("Data is send successifully!"); // show response from the php script.
               }
             });

        e.preventDefault(); // avoid to execute the actual submit of the form.
    });
});

现在我使用我的自定义类和方法。

这是我的db.class.php

中的insert()方法
  public function insert($fName, $lName, $nickname){
    $query = "INSERT INTO users (first_name, last_name, nickname)
              VALUES ($fName, $lName, $nickname)";

    return $this->_conn->query($query);
  }

现在我的user.class.php带有add()方法

  public function add($fName, $lName, $nickname){
    $db = new db();
    $db->insert($fName, $lName, $nickname);  
  }

最后是process.php个文件。我在那里发送请求。

<?php
require_once 'classes/user.php';
require_once 'classes/db.php';

$user = new user();
$user->add($_POST['fName'], $_POST['lName'], $_POST['nickname']);

?>

2 个答案:

答案 0 :(得分:0)

尝试调试$ _POST中的内容并确保所需的vars解析以插入查询不为空。 尝试在java脚本的success语句中的process.php和console.log(data)中使用var_dump($ _ POST)。

答案 1 :(得分:0)

您的值需要在SQL查询中被解释为字符串,否则MySQL会认为这些是列并且将显示为空。这是你如何做到的:

C:\Users\ICCSIR4\Downloads>wget --user=myuser --ask-password https://dds.cr.usg
s.gov/ltaauth//sno18/ops/l1/2017/151/043/LC81510432017067LGN00.tar.gz?id=ieden9r
gsjhil5pmr6050oopf6&iid=LC81510432017067LGN00&did=305822397&ver=production
Password for user 'shouvik':
--2017-03-11 14:14:58--  https://dds.cr.usgs.gov/ltaauth//sno18/ops/l1/2017/151/
043/LC81510432017067LGN00.tar.gz?id=ieden9rgsjhil5pmr6050oopf6
Resolving dds.cr.usgs.gov (dds.cr.usgs.gov)... 152.61.133.66, 152.61.133.67
Connecting to dds.cr.usgs.gov (dds.cr.usgs.gov)|152.61.133.66|:443... connected.

HTTP request sent, awaiting response... 403 Forbidden
2017-03-11 14:15:05 ERROR 403: Forbidden.

'iid' is not recognized as an internal or external command,
operable program or batch file.
'did' is not recognized as an internal or external command,
operable program or batch file.

Microsoft Windows [Version 6.1.7600]

通常建议使用预准备语句来避免SQL注入攻击。