Tableau de commande sql a interpreter - PHP - Programmation
Marsh Posté le 03-07-2009 à 11:58:54
utilise les balises [code] stp. bouton
tu peux éditer ton post avec
Marsh Posté le 03-07-2009 à 12:01:48
euh, sinon il manque peut être un
Code :
|
non?
et d'ailleurs pourquoi tu fais
Code :
|
au lieu de
Code :
|
??
Marsh Posté le 03-07-2009 à 14:01:00
eval peut-être ?
http://www.manuelphp.com/php/function.eval.php
Marsh Posté le 03-07-2009 à 14:19:06
Merci Pataluc, de t'interresser a mon bout de code... Oui en effet, il manquait l'affectation (boulette dans mon copier coller) mais ça ne fonctionne pas pour autant..Voici ce qu j'obtiens:
CREATE TABLE 'inlinemod' (ID CHAR(255) NOT NULL) ;
CREATE TABLE 'inlinemod' (ID CHAR(255) NOT NULL)
Erreur de syntaxe pr�s de 'CREATE TABLE 'inlinemod' (ID CHAR(255) NOT NULL)' � la ligne 1
J'utilise [] pour la variable l'element obtenu avec le foreach semble etre un tableau, si j'utilise $value sans crochet, j'obtiens le msg suivant:
Warning: mysqli_query() expects parameter 2 to be string, array given in D:\Program Files\EasyPHP 2.0b1\www\test\stage\premiereconnexion_3.php on line 24
Marsh Posté le 03-07-2009 à 14:21:55
scapel a écrit : J'utilise [] pour la variable l'element obtenu avec le foreach semble etre un tableau, si j'utilise $value sans crochet, j'obtiens le msg suivant: |
ah ouais, ok, c'est parce qu'il ne faut pas de [] avant le explode... http://www.php.net/manual/fr/funct [...] e.examples
Code :
|
Marsh Posté le 03-07-2009 à 14:25:26
eval permet d'evaluer du code PHP, mais là il sagit d'une requete sql. Eval, ne peut pas m'aider je crois
Marsh Posté le 03-07-2009 à 14:28:11
Pataluc,
Oui, c'est ce que j'ai fait au debut... Bon je reviens au debut, voici le code:
Code :
|
Mais le resultat est le meme:
CREATE TABLE 'inlinemod' (ID CHAR(255) NOT NULL) ;
CREATE TABLE 'inlinemod' (ID CHAR(255) NOT NULL)
Erreur de syntaxe pr�s de 'CREATE TABLE 'inlinemod' (ID CHAR(255) NOT NULL)' � la ligne 1
Marsh Posté le 03-07-2009 à 14:39:47
juste par curiosité, pourquoi tu n'importes pas ton fichier directement depuis phpmyadmin?
sinon, c'est peut être les quotes autour du nom de la table qui foutent la merde...
Marsh Posté le 03-07-2009 à 14:48:49
Le but c'est de faire une appli qui pourra charger des tables aux démarrages sans a avoir passer par l'interface admin.
Les cotes ne genent pas, car mon programme se deroule jusqu'au "echo" qui m'affiche bien l'instruction qui se trouve dans mon fichier inlinemod_seb.sql, c'est son interpretation qui plante...
Marsh Posté le 03-07-2009 à 15:05:06
je parlais bien de l'interprétation des quotes par la bdd et pas par php.
Marsh Posté le 03-07-2009 à 15:36:29
OK, s'cuse... Mais non, ça n'a pas l'air d'etre ça le pb...
Par contre, lorsque je regarde le code HTML genere par mon php, l'echo de la valeur traité par l'instruction "explode" :
<br \>?CREATE TABLE inlinemod (ID CHAR(255) NOT NULL) <br \>
Un point d'interrogation s'invite dans ma commande ! Je pense que c'est a cause de lui qu'elle n'est pas interpretee...
J'ai essaye de le virer mais sans succes... Pouquoi explode me rajoute ce "?" .... Grrrrrrrrr
Marsh Posté le 03-07-2009 à 16:07:52
tu pourrais montrer le contenu de ton fichier de commande sql?
Marsh Posté le 03-07-2009 à 16:09:00
Pour faire avancer le smilblil, c'est pas 1 caractere, mais 3 qui sont parasites a ma commande, et si je les retire, ça roule... Pourquoi explode (ou split d'ailleur) me pollue ma chaine?
Marsh Posté le 03-07-2009 à 16:21:08
si tu nous montre pas la gueule du fichier avant le explode on peut pas te répondre...
est ce que ca viendrait pas de ton read? tu peux pas utiliser la fonction file()? http://fr3.php.net/manual/fr/function.file.php
Marsh Posté le 03-07-2009 à 16:56:04
Sur le coup, quand tu m'as demande le fichier, je me suis dit que te faire un copier coller du contenu texte serait plutôt futile... Mais par contre, j'ai basculé (via mon editeur UE ) en mode binaire et là, surprise... Des codes cachés... Apres avoir nettoyé manuellement le fichier, ça fonctionne! Reste plus qu'a savoir comment et pourquoi ces codes étaient là et je vais probablement robustifier la lecture des commandes. Mais mon problème est résolu! Merci pour ton aide!
Marsh Posté le 03-07-2009 à 11:49:48
Je deviens fou...
J'ai un fichier de commandes sql séparées par des point-virgules, que je veux faire interpreter par un prog PHP.
Pour cela:
- je lis le fichier avec fread > c ok
- je "explode" dans un tableau
- avec un foreach je parcours le tableau
- Et je lance ma requet ...
Les echo dans le code me retourne bien la commande, mais celle ci n'est pas interpretee par mysqli_query
Et si je retire les // pour imposer directement la commande (qui s'affiche via les echo) , ça fonctionne !
Je suis preneur de toutes vos idées!
Merci d'avances!
Voici le code:
Message édité par scapel le 03-07-2009 à 13:58:49