Итак, я работаю над некоторым проектом (в основном изучаю 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](https://i.stack.imgur.com/W6KiJ.png)
это 2 NULL, потому что они сброшены.
Это NULL, потому что это подготовленное утверждение или это что-то еще? Я новичок в PDO и JQuery, поэтому я хотел бы, чтобы кто-нибудь мог ответить.