Ошибка SQLSTATE [22007]: недопустимый формат даты и времени: 1366 неверное целое значение

#php #sql

#php #sql

Вопрос:

Итак, я работаю над проектом «Вставки продукта». Все шло идеально, пока я не добавил элемент categories_id… И я получил эту ошибку: SQLSTATE [22007]: недопустимый формат даты и времени: 1366 неверное целое значение.

Вот мой код :

Способ отображения моих категорий :

  <select name="cate" id="">
        <option value="">Choisissez la catégorie de votre choix</option>
        <?php foreach ($categories as $category): ?>

        <option value="<?= $category["id"] ?>"><?= $category["id"] ?> - <?= $category["label"] ?></option>
        <?php endforeach; ?>
    </select>
  

Способ, которым я получаю свое значение

 $cate = $_POST["cate"];

$cate = (int)$cate;
  

Запрос stmt :

     $query = "INSERT INTO produits VALUES(NULL, :titre, :categories_id, :img1, :img2, :text1, :text2, :text3, :code, :designation, :ean, :pnu, :emballage, :scolisage, :colisage, :pnuu, :packaging, :carac, :contenu)";
$stmt->bindValue(':categories_id', $cate, PDO::PARAM_STR);
  

(Я не показывал вам каждые 20 строк о других, но они отлично работают до этого categories_id ..)

И функция, отображающая категории

 function getAllCategories()
  

{

 global $connexion;
$query = "SELECT * FROM categories";
$stmt = $connexion->prepare($query);
$stmt->execute();

return $stmt->fetchAll();
  

}

Большое спасибо за вашу помощь!

Комментарии:

1. Похоже, что ваш столбец category_id в вашей базе данных является полем типа даты… Или, поскольку вы используете INSERT без предоставления списка столбцов, это означает, что второй столбец в вашей таблице «produits» может не соответствовать ожидаемому полю (category_id) Попробуйте перечислить свои поля в вашем запросе: «ВСТАВИТЬ В ЗНАЧЕНИЯ produits(id, titre, categories_id, …) (…)»

2. пожалуйста, введите select * from `produits` в вашей базе данных, и мы сможем узнать, какой у вас category_id тип. Возможно, это дата * , вы можете изменить ее на int(11)