получает нулевое значение в качестве ответа, но данные вставляются в базу данных - PullRequest
0 голосов
/ 31 августа 2018

Итак, я работаю над некоторым проектом (в основном изучаю 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, поэтому я хотел бы, чтобы кто-нибудь мог ответить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...