Uncaught PDOException: SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'texts' cannot be null...bd.php on line 23
Осваиваю php(новичек). После того как добавил в index.php, php-код, появилась данная ошибка. Подскажите где она?
index.php
<?php
require_once("bdconnect.php");
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="style.css" />
<title>bd-test</title>
</head>
<body>
<input type="text" class="inputs_text" name="textss">
<input type="text" class="inputs_img" name="imgg">
<button type="submit" name="startData" class="btnSubmit">Отправить</button>
<div class="rows">
<?php
$query = $db->query('SELECT * FROM `databd`.`infos`');
while($row = $query->fetch(PDO::FETCH_ASSOC)) {
echo "<p>".$row['texts']."</p>";
}
?>
</div>
<script src="https://code.jquery.com/jquery-3.4.1.js" integrity="sha256-WpOohJOqMqqyKL9FccASB9O0KwACQJpFTUBLTYOVvVU=" crossorigin="anonymous"></script>
<script src="main.js"></script>
</body>
</html>
bd.php
<?php
$dbhost = "localhost";
$dbname = "databd";
$username = "root";
$userpass = "";
$charset = "utf8";
$options = [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION];
$data = [
"textss" => $_POST['textss'],
"imgg" => $_POST['imgg'],
];
$db = new PDO("mysql:host=$dbhost;dbname = $dbname;charset=$charset", $username, $userpass, $options);
$query = "INSERT INTO `databd`.`infos`(texts,img) VALUES (:textss, :imgg)";
$statement = $db->prepare($query);
$result = $statement->execute($data);
main.js
$(document).ready(function () {
$("button.btnSubmit").click("on", function () {
let textsval = $(".inputs_text").val();
let imgsval = $(".inputs_img").val();
$.ajax({
url: 'bdconnect.php',
type: "POST",
data: { textss: textsval, imgg: imgsval },
})
.done(function () {
// $(".rows").append(result);
});
$(".inputs_text").val("");
$(".inputs_img").val("");
});
});
Ответы (1 шт):
Автор решения: UKRman
→ Ссылка
Если не ошибаюсь параметры для бинда PDO::execute() тоже должны быть с ":"
$data = [
':textss' => $_POST['textss'],
':imgg' => $_POST['imgg'],
];
Если не помогло, то убедитесь что у вас в $_POST есть "textss" не пустой var_dump($_POST['textss']) + возможно вам понадобитса в выражении обдёрнуть в кавычки строковые данные
VALUES (":textss", ":imgg")