所以,我正在做一些项目(基本上是研究jquery和pdo)。
当我转储查询时,我得到的是NULL,但是提交后实际上将数据插入到数据库中,我希望有人能解释为什么会发生这种情况。
我不希望空白响应的主要部分是因为我想在成功查询(success: function(data) { if(data){//...} }
之后显示消息
从这里开始,这是我的插入方法:
public function insert($sql, $params) {
$sq = $this->conn->prepare("INSERT INTO ".$sql);
$res = $sq->execute($params);
//var_dump ($res) is giving true here
if(!$res){
die("error");
}
}
输入:
<form id="add_student" method="POST">
<input type="text" id="fname" name="fname" placeholder="First name" pattern="[A-Za-z]{2,}" required>
<input type="submit" value="Add">
</form>
jQuery:
$("#add_student").submit(function(e){
e.preventDefault();
fname = $("#fname").val();
$.ajax({
type: "POST",
url: "http://localhost/pdo/add.php",
data: {fname:fname},
cache : false,
success: function(data) {
if(data){
$("#alert-message-success").removeClass("hiddenAlert").html("Record added to database.").delay(7000).fadeOut(5000);
}
},
error: function() {
$("#alert-message-error").removeClass("hiddenAlert").html("There was an error insertin record to database.").delay(7000).fadeOut(5000);
return false;
}
});
插入php文件:
$db = new Database();
if(isset($_POST['fname'])) {
$sql = "students (name) VALUES (?)";
$name = $_POST['fname'];
$params = [$name];
$res = $db->insert($sql, $params);
var_dump($res); // this is NULL
if(!$res){
var_dump($res); //This is also NULL
}
}
它有2个NULL,因为它们被转储了。
它是NULL是因为它是一条预处理语句,还是其他?我是PDO和JQuery的新手,所以我想知道是否有人可以回答。