Renvoyer NULL avec UPDATE
Résolu
isa--
Messages postés
82
Date d'inscription
Statut
Membre
Dernière intervention
-
isa-- Messages postés 82 Date d'inscription Statut Membre Dernière intervention -
isa-- Messages postés 82 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous,
J'ai dans ma base un champ "action" dont la valeur par défaut est NULL
Pas de soucis pour les INSERT
Par contre, si je fais un UPDATE, je n'arrive pas à renvoyer la valeur NULL pour ce champ.
Le mieux que j'aie pu obtenir est un UPDATE `retours` SET `action` = 'NULL' ce qui fait entrer dans ma base la chaine de caratères "NULL" est non pas NULL.
Voici mon code pour la variable $action :
Merci d'avance pour votre aide, je crois que je patouille avec la fonction mysql_real_escape_string...
J'ai dans ma base un champ "action" dont la valeur par défaut est NULL
Pas de soucis pour les INSERT
Par contre, si je fais un UPDATE, je n'arrive pas à renvoyer la valeur NULL pour ce champ.
Le mieux que j'aie pu obtenir est un UPDATE `retours` SET `action` = 'NULL' ce qui fait entrer dans ma base la chaine de caratères "NULL" est non pas NULL.
Voici mon code pour la variable $action :
$action=$_POST["action"];
$action = $action == '' ? 'NULL':"'".mysql_real_escape_string($action)."'";
Merci d'avance pour votre aide, je crois que je patouille avec la fonction mysql_real_escape_string...
A voir également:
- Renvoyer NULL avec UPDATE
- Windows update bloqué - Guide
- Winget update - Guide
- Asus live update - Télécharger - Utilitaires
- Wsus offline update - Télécharger - Systèmes d'exploitation
- Nettoyage windows update - Guide
7 réponses
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonjour, montre nous le code qui prepare et fait l'UPDATE.
tu dois obtenir:
tu dois obtenir:
UPDATE retours SET action = NULL
isa--
Messages postés
82
Date d'inscription
Statut
Membre
Dernière intervention
1
Je sais bien, mais c'est là mon problème puisque j'obtiens
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonjour, montre-nous le code qui prépare et fait l'UPDATE.
Merci de ta réponse
Le code pour préparer est dans mon premier message.
Voici celui de la requête :
Le code pour préparer est dans mon premier message.
Voici celui de la requête :
$req="UPDATE `retours` SET `lr` = '$lr', `cial` = '$cial', `date` = '$date1', `client` = '$client', `dpt` = '$dpt', "
."`ref` = '$ref',`nolot` = '$nolot',`qte` = '$qte',`longu` = '$longu',`larg` = '$larg',`motif` = '$motif', "
." `action` = '$action',`matiere` = '$matiere',`msno` = '$msno',`traite` = '$traite',`nofacture` = '$nofacture',`erreur` = '$erreur',`nomerreur` = '$nomerreur', "
."`obs` = '$obs',`reprise` = '$reprise',`cloture` = '$cloture',`coutmatiere` = '$coutmatiere',`coutport` = '$coutport', "
."`montantavoir` = '$montantavoir',`noavoir` = '$noavoir',`nodossier` = '$nodossier', `dateavoir` = '$dateavoir',`montantprejudice` = '$montantprejudice',"
." `montantmatiere` = '$montantmatiere',`montantfourn` = '$montantfourn',`saisie` = '$saisie'"
." WHERE `id` = '$get'";
La déclaration de la table accepte le Null pour ce champ ???
essaie peut être avec la fonction isnull
peut être trop pressé 'NULL' est différent de NULL
enlève les '' ...
peut être trop pressé 'NULL' est différent de NULL
enlève les '' ...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
tu peux tester avec cet exemple pour comprendre:
$action1='NULL'; $action2="'"."action"."'"; echo "<br>"; echo $action1; echo "<br>"; echo $action2; echo "<br>"; echo "'$action1'"; echo "<br>"; echo "'$action2'"; echo "<br>";
Je reprends un peu ma demande pour que ce soit plus clair :
Requete : UPDATE `retours` SET `action` = '$action'
puis
Si $action est vide, je veux que le champ action de ma bdd soit NULL et non pas vide.
Ce qui n'est pas le cas actuellement car ce que je génère est :
à la place de
La question est donc comment faire dégager les '' de ma requête si $action est vide ?
Je pense que le problème vient de ma fonction mysql_real_escape_string($action) que je ne maitrise pas.
C'est là que j'ai besoin d'aide
Merci d'avance
Requete : UPDATE `retours` SET `action` = '$action'
Je récupère $action par $action=$_POST["action"]
puis
$action = $action == '' ? 'NULL':"'".mysql_real_escape_string($action)."'";
Si $action est vide, je veux que le champ action de ma bdd soit NULL et non pas vide.
Ce qui n'est pas le cas actuellement car ce que je génère est :
UPDATE retours SET action = 'NULL'
à la place de
UPDATE retours SET action = NULL
La question est donc comment faire dégager les '' de ma requête si $action est vide ?
Je pense que le problème vient de ma fonction mysql_real_escape_string($action) que je ne maitrise pas.
C'est là que j'ai besoin d'aide
Merci d'avance
Salut,
Un exemple simple auquel devrait ressembler ton code :
Bonne journée,
Un exemple simple auquel devrait ressembler ton code :
<?php if (isset($_POST['action'])) { $action = empty($_POST['action']) ? 'NULL' : "'" . $_POST['action'] . "'"; //$action = empty($_POST['action']) ? 'NULL' : "'" . mysqli_real_escape_string($_POST['action']) . "'"; $req = 'UPDATE `retours` SET `action` = ' . $action; var_dump($req); } ?> <form method="post" action=""> <input type="text" name="action"> <input type="submit"> </form>
Bonne journée,