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")
→ Ссылка