Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1593 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  exécution de scripts SQL depuis du code PHP

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

exécution de scripts SQL depuis du code PHP

n°1564930
Slip_Fuman​t
Posté le 24-05-2007 à 22:54:36  profilanswer
 

Bonjour à tous !
 
Après recherche dans ce thread, je n'ai rien trouvé qui réponde à ma question. Si j'ai mal cherché, excusez-moi par avance  :)  
 
Mon problème est le suivant :
 
Dans mon appli PHP/MySQL, l'admin a accès à une fonction de sauvegarde locale de la base de données sous la forme d'un script SQL de type :
 

Code :
  1. INSERT INTO(...) VALUES(...);
  2. INSERT INTO(...) VALUES(...);
  3. INSERT INTO(...) VALUES(...);


 
Le script généré par ma fonction marche parfaitement (je l'ai testé dans la console MySQL) mais je n'arrive pas à l'exécuter depuis le code PHP : une erreur survient. Et pour cause, mysql_query() ne prend en argument que des requêtes sans leur point-virgule final. On ne peut donc exécuter qu'une seule requête par appel de cette fonction.  
Je n'ai pas trouvé dans la doc de fonction permettant d'exécuter un script entier.
 
Si quelqu'un peut m'aider sur ce coup, ce serait très sympa !
(et désolé si jamais cette question est triviale, je suis newbie en php/mysql  :sweat: )

mood
Publicité
Posté le 24-05-2007 à 22:54:36  profilanswer
 

n°1564937
NewsletTux
<Insérez ici votre vie />
Posté le 24-05-2007 à 23:12:26  profilanswer
 

la solutiuon est p-ê de les insérer dans un tableau associatif (ou non) en php pour les exécuter chacune ...
 
genre
du fichier "lambda :

Code :
  1. INSERT INTO(...) VALUES(...);
  2. INSERT INTO(...) VALUES(...);
  3. INSERT INTO(...) VALUES(...);


 
on récupère en php le contenu (fopen, fread, fclose) dans $requetes p.ex.
 
puis on "splitte" :

Code :
  1. $array_requetes = explode("\n",$requetes); // on a une requête mysql par "ligne" du tableau


 
enfin, on exécute :

Code :
  1. foreach($array_requetes as $req)
  2. {
  3.     mysql_query($req) or die($req."<br>\n".mysql_error());
  4. }


 
bien entendu, on peut ajouter l'affichage de l'erreur mysql ou non ...

n°1564940
CyberDenix
Posté le 24-05-2007 à 23:16:41  profilanswer
 

En outre, si tu te tappes un gros fichier en un coup, tu risques d'avoir un timeout arrêtant l'exécution de ton script (sauf si t'as viré ce timeout dans ta config).
Le mieux c'est vraiment de faire des opérations atomiques, petit à petit.


Message édité par CyberDenix le 24-05-2007 à 23:17:27

---------------
Directeur Technique (CTO)
n°1564955
Slip_Fuman​t
Posté le 25-05-2007 à 01:20:49  profilanswer
 

Merci beaucoup du conseil (et de la rapidité :p) je vais procéder comme ça !

n°1564974
soju
One shot !
Posté le 25-05-2007 à 09:00:59  profilanswer
 

ça serait plus propre et plus fiable d'utiliser l'utilitaire mysql avec un petit exec (si ton hebergeur le permet)

n°1695597
grosbin
OR die;
Posté le 01-03-2008 à 16:58:17  profilanswer
 

Héhé
Perso je cherche à débugger un site car une page précise met des temps faramineux d'éxecution ces derniers temps (120 sec) sur mon blog et je n'ai aucune idée comment retracer ligne par ligne la ligne qui patauge ..
 
Bref pour sql, je crée  
$q[]="select from blabla";
puis mysql_query(end($q))
 
permettant de retracer toutes les commandes quand t'es méticuleux :D


---------------
Photos Panoramiques Montagnes Haute Savoie
n°1697245
lool88
Posté le 04-03-2008 à 23:16:06  profilanswer
 

essaye avec microtime pour calculer le temps
 
t'as l'exemple sur la page d'aide de la fonction sur le site de php:
 
<?php
$time_start = microtime(true);
 
// Sleep for a while
usleep(100);
 
$time_end = microtime(true);
$time = $time_end - $time_start;
 
echo "Did nothing in $time seconds\n";
?>


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  exécution de scripts SQL depuis du code PHP

 

Sujets relatifs
est-il possible d'utiliser une fonction de son cru ds une requète SQL?[Résolu] Php / MySQL - Région répétée
Problème requete SQL sur du PHPQuestion PHP, PEAR SOAP, Dotnet et sérialisation
SQL serverCoup de main pour une requete SQL
[Access 2000 et SQL] Count, Group by et Sort => le sort ne marche pasrequete SQL
Envoyer un code clavier vers RS232 ou usb ? 
Plus de sujets relatifs à : exécution de scripts SQL depuis du code PHP


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR