所以我试图使用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']);
?>
答案 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注入攻击。