得到null作为响应,但是数据正在数据库中插入

时间:2018-08-31 16:38:48

标签: php jquery ajax pdo

所以,我正在做一些项目(基本上是研究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
    }
}

response from add.php

它有2个NULL,因为它们被转储了。

它是NULL是因为它是一条预处理语句,还是其他?我是PDO和JQuery的新手,所以我想知道是否有人可以回答。

0 个答案:

没有答案