|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Futur Membre du Club
![]() Inscription : octobre 2005 Messages : 145 ![]() |
bonsoir,
j'effectue une requete on ne peut plus simple : Code :
j'ai tout testé: renommer les champs ... qd je créé une nouvelle table, en recopiant seulement la même structure, l'insertion se fait sans soucis. par contre la création d'une nouvelle table avec recopie données et structure, pas d'insertion. je cherche une piste de reflexion merci !!!!! et bonne fêtes |
||
|
|
00
|
|
|
#2 | |
|
Membre Expert
![]() ![]() Inscription : janvier 2010 Messages : 1 084 ![]() |
Bonjour
essayez déjà d'afficher votre requête dans votre navigateur, et de l'exécuter directement à la main ensuite, vous récupèrerez surement un message d'erreur. Ça sent la violation de contrainte Vous pouvez aussi récupérer le message d'erreur MySQL grâce aux fonctions php (car il semble que vous soyez en php), pour l'afficher directement... Sinon, vous dites Citation:
|
|
|
|
00
|
|
|
#3 | ||
|
Futur Membre du Club
![]() Inscription : octobre 2005 Messages : 145 ![]() |
merci pour votre intèret
effectivement, la valeur par defaut devrait être NULL mais en fait le champs reste vide. je ne peux voir un msg d' erreur car je passe via une fenêtre ajax modal qui appelle un script uploadify ajax. je vous mets le script complet ... Code :
qu'entendez vous par une violation de contrainte - je gére pas les contrainte d'intégrité ... merci |
||
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() Inscription : janvier 2006 Messages : 951 ![]() |
tu dois bien avoir un acces shell / phpmyadmin à ta base de donnée. Passe la commande sql en direct et tu aurras ton erreur. On peut pas deviner le message d'erreur nous.
__________________
PHP fait nativement la validation d'adresse électronique Utilisez le bouton résolu! |
|
|
00
|
|
|
#5 |
|
Futur Membre du Club
![]() Inscription : octobre 2005 Messages : 145 ![]() |
je n'ai aucun pb SQL avec ma rêquete ...
si je publie sur ce FORUM c'est bien que je sèche fort même avec la neige |
|
|
00
|
|
|
#6 | ||||
|
Membre Expert
![]() Inscription : janvier 2006 Messages : 951 ![]() |
on va y aller avec des pincettes.
On est sur un forum mysql. Donc on part du principe que le probleme viens de la base de données par du script. Bon active les logs du serveur mysql. On verra bien si ton INSERT qui ne se fait pas arrive jusqu'au serveur ou pas. http://dev.mysql.com/doc/refman/5.1/en/server-logs.html ensuite on va ajouter un petit quelque chose pour comprendre pourquoi on vois ou pas la requete passer. Code :
et pour finir tu fais un petit fichier test.php qui montre Code :
__________________
PHP fait nativement la validation d'adresse électronique Utilisez le bouton résolu! |
||||
|
|
00
|
|
|
#7 |
|
Membre Expert
![]() Inscription : janvier 2006 Messages : 951 ![]() |
j'ai mal lu la question.
fait le truc avec les logs, ça sera instructif. C'est toujours instructif de toute façon.
__________________
PHP fait nativement la validation d'adresse électronique Utilisez le bouton résolu! |
|
|
00
|
|
|
#8 |
|
Futur Membre du Club
![]() Inscription : octobre 2005 Messages : 145 ![]() |
en fait ce que je ne m'explique pas, c'est que ces 2champs LIBELLE et POSTEUR doivent être NULL si champ vide, mais après l'INSERT je n'ai pas NULL.
il ya donc un insertion vide Compte tenu que dans le champ LIBELLE je dois insérer la même chose que dans le champ NOMFICHIER, je ne comprend pas j'ai essayé d'insérer un champ texte en dur, tjrs le soucis ... merci pour une piste |
|
|
00
|
|
|
#9 |
|
Membre Expert
![]() ![]() Inscription : janvier 2010 Messages : 1 084 ![]() |
C'est normal que vous ayez une insertion vide, c'est pour cela que je vous suggérais de récupérer d'une part la VRAIE requete envoyée au serveur (et non la commande php qui vous permet de générer la requete), et de récupérer aussi les éventuels messages d'erreur MySQL
Si votre variable php est indéfinie ou vide, le fait de faire INSERT ... VALUES('$maVarPHP'... insèrera une valeur vide, et non un null ! Je suis prêt a parier que votre problème se situe ailleurs que la ou vous êtes en train de chercher. Vous dites que seules les colonne libellé et posteur restent a NULL, mais comment le savez vous ? comment vérifiez vous cela ? directement dans phpmyadmin (ou autre), Ou est-ce dans votre page d'affiche de votre site que vous ne voyez rien ? (auquel cas, le problème vient peut être même d'une bête faute de frappe dans votre page d'affichage) C'est pourquoi je vous ai conseillé d'afficher votre requete, message d'erreur et autre, afin de bien localiser le problème : 1/ est ce que la requete générée par PHP est bien celle que vous pensez. 2/ est-ce que la requete reçue par MySQL est bien exécutée ? est-ce qu'elle génère une erreur ? 3/ est-ce que le résultat DANS LA BASE de données est bien celui escompté ? 4/ est-ce que la page d'affichage des données affiche bien le contenu de la base ? |
|
|
00
|
|
|
#10 |
|
Futur Membre du Club
![]() Inscription : octobre 2005 Messages : 145 ![]() |
bonjour,
"C'est normal que vous ayez une insertion vide," pourquoi ? mon insertion n'est pas vide, une ligne dans phpadmin est bien créée "Je suis prêt a parier que votre problème se situe ailleurs que la ou vous êtes en train de chercher." [COLOR="rgb(46, 139, 87)"]je le pense aussi mais pour l'instant je cherche sur l'insert ...[/COLOR] Vous dites que seules les colonne libellé et posteur restent a NULL, mais comment le savez vous ? [COLOR="rgb(46, 139, 87)"]et bien via phpmyadmin et à l'affichage dans le gestion de document en ligne, le libellé et posteur sont vides[/COLOR] la requete ne genere pas d'erreur : j'ai créé un champ type longtext dans lequel j'insert la requête complète ce que je n'explique c'est que la même variable PHP $targetFile s'insere dans le champ <nomfichier> sans soucis mais dans <libelle> le champ est vide ... mais pas NULL |
|
|
00
|
|
|
#11 | ||
|
Membre Expert
![]() ![]() Inscription : janvier 2010 Messages : 1 084 ![]() |
Citation:
Citation:
le mieux serait encore de nous exposer la DDL de la table complète |
||
|
|
00
|
|
|
#12 |
|
Membre Expert
![]() ![]() Inscription : janvier 2010 Messages : 1 084 ![]() |
Re,
Quelques autres pistes : 1 / Êtes vous sur de n'avoir aucune contrainte d'aucun type sur ces colonnes (mais dans ce cas, si elle était violée, vous devriez avoir un message d'erreur) 2/ êtes vous sur de ne pas avoir de trigger sur cette table ? 3/ avez vous essayé de lancer la même requete en changeant les valeurs a la main, et essayé de mettre a jour à la main également depuis phpmyadmin ? |
|
|
00
|
|
|
#13 | ||
|
Futur Membre du Club
![]() Inscription : octobre 2005 Messages : 145 ![]() |
voici la structure de la table ...
Code :
INSERT INTO document (nomfichier,libelle,posteur,datecreat,datemodif,daterecept,format,nomsource,taille,proprietaire,parent,fichier,repertoire,ordre) VALUES('Lot 14.pdf','Lot 14.pdf','ggable','2010-12-21','2010-12-21','2010-12-21','pdf','Lot 14.pdf','375.44140625','ggable',1768,1,0,2) le champ LIBELLE et POSTEUR sont vides qd la requete est jouée par le script PHP mais ok quand je fait pas SQL sous PHPMYADMIN !!! |
||
|
|
00
|
|
|
#14 | |
|
Membre Expert
![]() ![]() Inscription : janvier 2010 Messages : 1 084 ![]() |
Citation:
Je reste persuadé que la commande qui arrive de php n'est pas celle que vous croyez. Essayez de créer un page php tout simple où vous exécutez la requête saisie à la main, et voyez ce que cela donne... |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com