IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Champ vide qui génère une erreur


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2015
    Messages
    518
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juillet 2015
    Messages : 518
    Par défaut Champ vide qui génère une erreur
    Bonjour,

    Je ne comprends pas mon erreur ici :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    $pdo->prepare('UPDATE ebay SET title = ?, price = ?, shipping = ?, purchase = ?, ad_number = ? WHERE id = ?')->execute([$_POST['title'], $_POST['price'], $_POST['shipping'], $_POST['purchase'], $_POST['ad_number'], $pcs->id]);

    plus bas dans la page j'ai le formulaire dont le champ ad_number :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="text" name="ad_number" value="<?= $pcs->ad_number ?>" class="form-control" id="ad_number">

    erreur une fois le formulaire envoyé SANS remplir le champ ad_number car facultatif, si je mets une valeur dans le champ alors je n'ai pas d'erreur :

    ( ! ) Fatal error: Uncaught PDOException: SQLSTATE[HY000]: General error: 1366 Incorrect integer value: '' for column 'ad_number' at row 1 in C:\wamp64\www\auto\5w3sn9\app\ebay\modify.php on line 13
    ( ! ) PDOException: SQLSTATE[HY000]: General error: 1366 Incorrect integer value: '' for column 'ad_number' at row 1 in C:\wamp64\www\auto\5w3sn9\app\ebay\modify.php on line 13
    coté sql :
    le champ ad_number est en bigint / NULL autorisé.

    pourquoi ne puis-je pas laisser le champ ad_number vide ?

    Merci à vous

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Si tu veux un NULL il faut mettre explicitement NULL pas une chaine vide.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $ad_number = ($_POST['ad_number'] === '') ? NULL : intval($_POST['ad_number']);
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre éclairé
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2015
    Messages
    518
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juillet 2015
    Messages : 518
    Par défaut
    mais là si je mets dans le champ NULL moi même il doit réagir de la même façon que si je laisse le champ vide avec ton code.. pourtant il m'affiche la même erreur !

    Je tests ton code...

  4. #4
    Membre éclairé
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2015
    Messages
    518
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juillet 2015
    Messages : 518
    Par défaut
    ton code fonctionne ! mais alors pourquoi si je mets moi même NULL dans le champ il m'affiche la même erreur ? humm

    j'ai intégré ton code comme ceci juste avant le update :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $ad_number = ($_POST['ad_number'] === '') ? NULL : intval($_POST['ad_number']);
            	$pdo->prepare('UPDATE ebay SET title = ?, price = ?, shipping = ?, purchase = ?, ad_number = ? WHERE id = ?')->execute([$_POST['title'], $_POST['price'], $_POST['shipping'], $_POST['purchase'], $ad_number, $pcs->id]);

  5. #5
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Si tu veux dire que tu tapes NULL dans ton formulaire ça donne la chaine 'NULL' pas un NULL.
    Mais cela ne genère pas la même erreur. Tu verras "value: 'NULL'"

    Attention ces comportements sont différent si l'emulation des requêtes préparées est activée ou non.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. script qui génère une Erreur 400
    Par faluorn dans le forum Web
    Réponses: 2
    Dernier message: 18/04/2008, 10h04
  2. Exécutable qui génére une erreur windows
    Par jouidos dans le forum Windows Forms
    Réponses: 4
    Dernier message: 22/01/2007, 16h50
  3. .lib qui génère une erreur au link
    Par mrshadow dans le forum VC++ .NET
    Réponses: 2
    Dernier message: 19/01/2007, 11h47
  4. [VB6] Problème de textbox multiligne qui génére une erreur
    Par bb62 dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 20/02/2006, 17h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo