#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)