Requête SQL : Valeur enregistrée dans la table : 0 alors que j'attends : NULL...
Résolu/Fermé
Recoh
Messages postés
37
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 37 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 37 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...
- Table ascii - Guide
- Dans la table des matières de ce document, le chapitre 6 et ses 2 sections n'apparaissent pas. trouvez l'erreur dans la structure du document et corrigez-la. mettez à jour la table des matières. quel est le mot formé par les lettres en majuscules de la table des matières après sa mise à jour ? - Forum Word
- Table des matières word - Guide
- Blob sql ✓ - Forum Webmastering
- Le fichier contient le nombre de voyageurs dans 3 gares. dans la cellule b5, saisissez une formule qui calcule le total et se met à jour si on change une valeur du tableau. quel total obtenez-vous ? quelle formule avez-vous saisie ? ✓ - Forum Excel
3 réponses
Recoh
Messages postés
37
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
37277
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
26 mars 2023
4 551
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
.
Cordialement,
Jordane
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
.
Cordialement,
Jordane
Recoh
Messages postés
37
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_ ?