scapel | 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:
Code :
- <?php
- define('DB_HOST', 'localhost');
- define('DB_USER', 'root');
- define('DB_PASSWORD', '');
- define('DB_NAME', 'test2');
- //mysql_select_db(DB_NAME) or die(mysql_error());
- function sqlQuery($query)
- {
- // Connexion à la base de données
- $cxn = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD,DB_NAME) or die(mysqli_error($cxn));
- echo $query.'<br \>'.'<br \>';
- $tab_query[] = explode(';',$query);
- foreach($tab_query as $value)
- {
- if ($value!='')
- {
- echo $value[0].'<br \>'.'<br \>';
- //$cmd = "CREATE TABLE inlinemod (ID CHAR(255) NOT NULL) ;";
- $cmd = $value;
- mysqli_query($cxn,$cmd) or die(mysqli_error($cxn));
- }
- }
- }
- function transfert_table($fichier)
- {
- if (file_exists($fichier))
- {
- $fp = fopen("$fichier", "r" );
- $alire = fread($fp,1000000);
- }
- else
- {
- /* le fichier n'existe pas */
- echo "Fichier introuvable !<br>Importation stoppée.";
- exit();
- }
- sqlQuery($alire);
- echo "<br>Importation terminée, avec succès.";
- /* Fermeture */
- fclose($fp);
- }
- transfert_table('D:/Program Files/EasyPHP 2.0b1/www/test/stage/inlinemod_seb.sql');
- mysql_close();
- ?>
|
Message édité par scapel le 03-07-2009 à 13:58:49
|