Problème Data Truncated
Résolu
Bonjour,
J'insère mes données en DB via une boucle for, cependant certain champs de type <input> peuvent être vides. Ducoup SQL me mais une erreur de type
Warning: 1265 Data truncated for column...
Je précise que malgré l'erreur, mes données sont bel et bien inséré dans ma DB.
Comment y remedier ?
J'insère mes données en DB via une boucle for, cependant certain champs de type <input> peuvent être vides. Ducoup SQL me mais une erreur de type
Warning: 1265 Data truncated for column...
Je précise que malgré l'erreur, mes données sont bel et bien inséré dans ma DB.
Comment y remedier ?
1 réponse
-
ModérateurBonjour,
Commence par nous montrer les structure de ta table
Puis, le code PHP utilisé pour faire tes insertions.
-
CREATE TABLE IF NOT EXISTS `subs` ( `id` int(11) NOT NULL, `year` int(11) NOT NULL, `value` double NOT NULL, PRIMARY KEY (`id`,`year`), KEY `year` (`year`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
public function insert_sub($id, $year, $value){ $query = "INSERT INTO subs (id, year, value) values (:id, :year, :value)"; $ps = $this->_db->prepare($query); $ps->bindValue(':id',$id); $ps->bindValue(':year',$year); $ps->bindValue(':value',$value); return $ps->execute();
if (!empty($_POST)){ $id = $_POST['id']; $year = $_POST['year']; $value = $_POST['value']; for ($i=0; $i < count($id) ; $i++) { Db::get_instance()->insert_sub($id[$i], $year[$i], $value[$i]){ } }//end post -
-
-
-
ModérateurTu as choisi, dans ta bdd, `value` double NOT NULL,
Il s'attend donc à avoir un nombre.
Si tu y met du texte ( ou vide... qui est considéré comme une chaine de texte vide)... il te retourne forcément un warning.
Donc soit tu autorises le NULL dans ce champ (et quand tu veux ne rien y mettre.. tu y mets du "null" )
soit tu fixes ta valeur à zero.
-