|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Invité de passage
![]() Inscription : septembre 2006 Messages : 27 ![]() |
Bonjour,
J'ai deux petit souci que je n'arrive pas à résoudre. Tout d'abord, J'ai un souci sur l'éxecution des requête Insert. En effet, si j'ai un champs non rempli, j'ai alors le message suivant " Warning: pg_query(): Query failed: ERROR: invalid input syntax for integer: "" ". A priori cela ne touche que les champs numérique. Voici mon bout de code : Partie fonction : Code :
Code :
Merci et bonne journée. Ludo |
||||
|
|
00
|
|
|
#2 |
|
Membre émérite
![]() ![]() Inscription : novembre 2004 Messages : 735 ![]() |
Le warning apparait parceque tu tentes d'inserer la chaine vide dans une colone de type entier. Donc forcément, cela ne fonctionne pas.
Pour éviter ce genre de désagréments, il faut tester la valeur, si c'est un entier, tu le laisses tel quel sinon tu fais ce qui faut ( erreur utilisateur, insertion de la valeur null, valeur par défaut, ...) Pour pg_insert_id(), je n'ai pas vu trace de cette fonction dans la doc. Donc cela semble normal que cela ne marche pas
__________________
Pierre 1. Dans le manuel ( PHP, MySQL,..., rayez la mention inutile), tu te plongeras à deux fois plutôt qu'aucune. 2. Dans la doc php, tu liras attentivement les sections Chaines de caractères, Tableaux et Système de fichiers 3. Un code rapide c'est bien, un code maintenable c'est mieux ... Why was the font tag an orphan ? Because it didn't have a font-family. |
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : septembre 2006 Messages : 27 ![]() |
Cela veut dire que je ne peu pas rentrer de valeur vide ?
|
|
|
00
|
|
|
#4 |
|
Membre émérite
![]() ![]() Inscription : novembre 2004 Messages : 735 ![]() |
Ce n'est pas un champ texte, donc la seule façon d'insérer une valeur 'vide' dans une colonne de type entier c'est de mettre un NULL dans cette colonne.
De toute façon il faut que tu testes les valeurs avant insertion pour éviter les soucis ( SQL injection ). A ce moment, si la valeur indiqué est la chaine vide alors que la base attends un entier, tu la change par la chaine 'NULL'
__________________
Pierre 1. Dans le manuel ( PHP, MySQL,..., rayez la mention inutile), tu te plongeras à deux fois plutôt qu'aucune. 2. Dans la doc php, tu liras attentivement les sections Chaines de caractères, Tableaux et Système de fichiers 3. Un code rapide c'est bien, un code maintenable c'est mieux ... Why was the font tag an orphan ? Because it didn't have a font-family. |
|
|
00
|
|
|
#5 | ||
|
Invité de passage
![]() Inscription : septembre 2006 Messages : 27 ![]() |
Alors j'ai mis en place le test suivant :
Code :
Warning: pg_query(): Query failed: ERROR: invalid input syntax for integer: "" Avec la rquête suivant : INSERT INTO schema_gestion_cimetco.contact (num_client_contact, id_personne, id_type_contact, id_statut, date_statut_contact) VALUES ('iuiu-10-2006','49','','','') Je comprend bien le message d'erreur, mais moi ce que je veux ces que ces champs soit des fois sans valeur. Donc comment puis je faire ? Merci |
||
|
|
00
|
|
|
#6 |
|
Membre chevronné
![]() ![]() Aurélien Développeur Web Inscription : avril 2006 Messages : 510 ![]() |
If ($valeur ="") est une affectation
=> If ($valeur == "") est un test tu pourrais monter comment tu as appelé la fonction que t'as écrite au moment de la construction de la requête ? ex : Code :
"INSERT INTO schema_gestion_cimetco.contact (num_client_contact, id_personne, id_type_contact, id_statut, date_statut_contact) VALUES ('iuiu-10-2006','49'," . TestValeur($truc) . "," . TestValeur($machin) . ",'') si ça marche toujours pas, tu mets une valeur numérique spécifique dans ton champ si l'utilisateur a rien entré, une valeur qui ne peut pas être entrée par l'utiklisateur lui-même exemple entrez votre age : si (age == '') age = 9999 envoyer requête |
|
00
|
|
|
#7 |
|
Invité de passage
![]() Inscription : septembre 2006 Messages : 27 ![]() |
Et dire que ca fais bien plus d'une heure que je suis dessu. Merci mille fois |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com