Requête SQL : Valeur enregistrée dans la table : 0 alors que j'attends : NULL...
Résolu/Fermé
Recoh
Messages postés
36
Date d'inscription
dimanche 19 juillet 2020
Statut
Membre
Dernière intervention
2 mars 2021
-
5 févr. 2021 à 17:05
Recoh Messages postés 36 Date d'inscription dimanche 19 juillet 2020 Statut Membre Dernière intervention 2 mars 2021 - 5 févr. 2021 à 19:51
Recoh Messages postés 36 Date d'inscription dimanche 19 juillet 2020 Statut Membre Dernière intervention 2 mars 2021 - 5 févr. 2021 à 19:51
A voir également:
- Requête SQL : Valeur enregistrée dans la table : 0 alors que j'attends : NULL...
- Erreur lors de l'envoi de la requête facebook marketplace - Forum Facebook
- Sql server recovery - Télécharger - Gestion de données
- Il y a eu un problème avec cette requête. nous travaillons à sa résolution aussi vite que nous le pouvons. - Forum Facebook
- Logiciel sql - Télécharger - Bases de données
- Requête sql doublons sur 2 champs ✓ - Forum Programmation
3 réponses
Recoh
Messages postés
36
Date d'inscription
dimanche 19 juillet 2020
Statut
Membre
Dernière intervention
2 mars 2021
Modifié le 5 févr. 2021 à 17:21
Modifié le 5 févr. 2021 à 17:21
J'ai modifié la colonne menu de ma table pour passer de INT(1) à TINYTEXT(4) mais le résultat est le même via le script php (j'ai laissé coché "NULL" dans les caractéristiques de la colonne menu) : 0 !
jordane45
Messages postés
38319
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
30 novembre 2024
4 706
Modifié le 5 févr. 2021 à 17:24
Modifié le 5 févr. 2021 à 17:24
Bonjour,
Ne pas confondre la valeur "NULL" qui est du texte ( et sera remplacé par un 0 si ton champ est de type numerique ( INT, BIGINT .. )
et la valeur NULL qui est bien.. la valeur NULL...
Donc, pour éviter les soucis
Dans ton html
Et côté PHP :
Un peu de lecture au passage :
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
.
Ne pas confondre la valeur "NULL" qui est du texte ( et sera remplacé par un 0 si ton champ est de type numerique ( INT, BIGINT .. )
et la valeur NULL qui est bien.. la valeur NULL...
Donc, pour éviter les soucis
Dans ton html
<select name="menu"> <option value="">aucun</option> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> </select>
Et côté PHP :
<?php //---------------------------------------------------------------------------------------// //affichage des erreurs PHP //---------------------------------------------------------------------------------------// error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); //---------------------------------------------------------------------------------------// //connexion à la bdd // Que je placerai dans un fichier à part et que tu pourrais ensuite // inclure dans tes pages lorsque tu en as besoin //---------------------------------------------------------------------------------------// try{ $bdd =new PDO('mysql:host=sql.free.fr'; XXXXXXXX); $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $bdd->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); } catch (PDOException $e) { echo 'Erreur : ',$e->getMessage(),'<br />'; die(); } //---------------------------------------------------------------------------------------// // récupération PROPRE des variables AVANT de les utiliser // et on nomme ses variables intelligemment pour pouvoir les retrouver facilement.. // et la fonction htmlspecialchars ne s'utilise QUE POUR de l'AFFICHAGE .. JAMAIS pour l'enregistrement ! //---------------------------------------------------------------------------------------// $label = !empty($_POST['label']) ? $_POST['label'] : NULL; $prix = !empty($_POST['prix']) ? $_POST['prix'] : NULL; $description = !empty($_POST['description']) ? $_POST['description'] : NULL; $menu = !empty($_POST['menu']) ? $_POST['menu'] : NULL; $reference = !empty($_POST['reference']) ? $_POST['reference'] : NULL; try{ //update produits : $sql = 'UPDATE produits SET label = :label , description = :description , prix = :prix , menu = :menu WHERE reference = :ref'; $requete = $bdd->prepare($sql); $requete->bindParam(':label',$label); $requete->bindParam(':description',$description); $requete->bindParam(':prix',$prix); $requete->bindParam(':menu',$menu); $requete->bindParam(':ref',$ref); $requete->execute(); } catch (PDOException $e) { echo 'Erreur : ',$e->getMessage(),'<br />'; die(); } //select try{ $sql = 'SELECT * FROM produits WHERE reference = :ref'; $requete = $bdd->prepare($sql); $requete->bindParam(':ref',$ref); $requete->execute(); $row = $requete->fetchAll(); // on stocke le resultat dans un array } catch (PDOException $e) { echo 'Erreur : ',$e->getMessage(),'<br />'; die(); }
Un peu de lecture au passage :
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
.
Recoh
Messages postés
36
Date d'inscription
dimanche 19 juillet 2020
Statut
Membre
Dernière intervention
2 mars 2021
5 févr. 2021 à 19:51
5 févr. 2021 à 19:51
C'est parfait ! J'ai pas pensé au "!" ...
Merci beaucoup, j'ai plusieurs livres sur php, mysql, etc., dommage qu'ils ne traitent pas du PDO en profondeur mais je vais m'en trouver un.
Je peaufine déjà ce que j'ai prévu avec ce petit site et je fais le point sur la sécurisation y des échanges avec sql.
Merci encore, tu vois qu'on peut faire un bond de 10 ans en avant !!
Bientôt php 7, 8...
:)
PS : J'hésite vraiment à utiliser mysqli_ puisque j'ai déjà commencé à utiliser PDO. Peut-être aurais-je dû commencer par mysqli_ ?
Merci beaucoup, j'ai plusieurs livres sur php, mysql, etc., dommage qu'ils ne traitent pas du PDO en profondeur mais je vais m'en trouver un.
Je peaufine déjà ce que j'ai prévu avec ce petit site et je fais le point sur la sécurisation y des échanges avec sql.
Merci encore, tu vois qu'on peut faire un bond de 10 ans en avant !!
Bientôt php 7, 8...
:)
PS : J'hésite vraiment à utiliser mysqli_ puisque j'ai déjà commencé à utiliser PDO. Peut-être aurais-je dû commencer par mysqli_ ?