Problême avec une requête mysql [PHP] - PHP - Programmation
Marsh Posté le 24-05-2006 à 09:29:44
???
il dit juste que t'a un problème de syntaxe dans ta requete...
- ajoute des echo avant tes $so->query(); pour voir si les requetes sont bien formées.
- on voit pas la partie connexion à la BDD, c'est fait directement par le contructeur quand tu déclare ta classe Csql ???
- pour valider la syntaxe de tes requetes, essai déjà de les injecter directement via phpmyadmin par exemple, pour voir ce qu'il te dit...
Marsh Posté le 24-05-2006 à 10:43:05
Comme je suis pas très clair je vais simplifier les choses :
Code :
|
même erreur =>
Citation : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'source C:\local\web\wwweae\sql\insert.sql' at line 1 |
J'ai testé dans phpmyadmin, la requête ne marche pas (j'aurais dû le préciser), mais si je le fait directement dans mysql en ligne de commande, ca fonctionne très bien.
Donc je reformule ma question, pourquoi la commande 'source' refuse de fonctionner avec PHP? me serais-je tromper quelque part? Si c'est interdit, ya t'il une autre façon de faire pour exécuter un fichier script SQL via PHP?
Marsh Posté le 24-05-2006 à 11:24:34
Citation : $dbLink = @mysql_connect ('localhost', 'root', 'admin'); |
pourquoi le "@", t'a un pb de connexion qui s'affiche quand tu le met pas ???
Marsh Posté le 24-05-2006 à 11:25:57
et aussi, peux tu nous montrer le début de ton fichier "insert.sql" ?
et oui, ya bien un moyen de contourner, tu lis le contenu du fichier insert.sql pour reformer la requete dans une variable sous PHP.
Marsh Posté le 24-05-2006 à 11:39:29
"source" n'est pas un mot-clé qu'on peut mettre dans une requête SQL.
Marsh Posté le 24-05-2006 à 11:40:36
Xav_ a écrit : et aussi, peux tu nous montrer le début de ton fichier "insert.sql" ? |
Le problême n'est pas la connection et le fichier insert.sql est bon, juste des insert tout bête, qui passent très bien sous phpmyadmin.
J'étais justement en train de faire ce que tu dit pour contourner le problême, bien que j'aurais préféré voir la commande "source" fonctionné.
Marsh Posté le 24-05-2006 à 11:47:58
Code :
|
Bon, voila ca ca marche, je suis pas un pro du php, donc mon code vaut ce qu'il vaut
Mais je suis toujours preneur si il y a une solution pour l'appel SQL de "source [fic]" dans PHP.
Merci tout de même pour toutes vos réponses.
Marsh Posté le 24-05-2006 à 12:34:01
ton code à l'air pas mal, à part que tu peux faire plusieurs INSERT avec une seul requete en SQL donc moi j'aurais fait une concaténation des lignes du fichier dans la boucle for, genre
Code :
|
et un seul
Code :
|
à la fin....
et tu te connecte à la BDD juste avant l'envoie de la requete unique, et tu te déconnecte juste après, comme ça au niveau sécurité c'est mieux
Marsh Posté le 23-05-2006 à 23:33:02
Bonjour à tous,
J'ai un problême avec ce bout de code là.
Qui me donne cette erreur là =>
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'source Clocal/web/dossier/sql/mysql.sql' at line 1
Or le chemin jusqu'au script mysql.sql est correct, ainsi que le script lui même (juste des définition de tables). Dois-je en déduire que je ne peux pas faire des requêtes avec la commande "source"? Si non, y a t'il un autre moyen pour exécuter mon script?
Merci d'avance pour vos futures réponses.