[PHP-MySQL] Executer un script SQL

MarieJ -  
 Sennoa -
Bonjour,

Habituellement, j'execute une simple requete mySQL de la manière suivante:
$query=mysql_query("select AA FROM BB );
$result=mysql_fetch_array($query);

mais là je souhaiterais executer un script sql qui créer/insère un très grand nombre d'entrées.
Savez-vous comment faire pour executer un script/fichier SQL depuis une commande PHP ?

Merci d'avance
A voir également:

3 réponses

28ToM47
 
Peut importe le nombre d'entrée, tu peux en enregistrer autant que tu veux ( jusqu'aux limites des ressources de ton serveur ).
Pour cela utilise les boucles for ou while ( https://www.php.net/manual/en/control-structures.for.php ou www.php.net/while )
Sachant que while se traduit par "tant que" et for par "pour".


ex:
$query=mysql_query("select AA FROM BB );
while ( $result=mysql_fetch_array($query) ) {
echo 'résultat :'.$result['AA'].'</ br>';
}

good luck ;)
0
MarieJ
 
Merci de ta réponse mais j'ai vraiment besoin d'exécuter un script SQL depuis PHP.
J'ai besoin de quelque chose qui ressemble à:

$query=mysql_query("MONFICHIER.SQL");
$result=mysql_fetch_array($query);

Est-ce que quelqu'un sait ?
Merci
0
MickaelTapon
 
Je suis également impatient d'avoir la réponse...
0
Sennoa
 
Pour que ça marche, il faut procéder en plusieurs étapes :
1 - Ouvrir le fichier sql et le mettre dans une variable avec ob_get_contents()
2 - utiliser mysqli plutôt que mysql car il faut pouvoir faire une requête multiple dans un seul query

$link = mysqli_connect(DBHOST, DBUSER, DBPASSWD, DBNAME);

if (!$link) {
    die('Connect Error (' . mysqli_connect_errno() . ') '
            . mysqli_connect_error());
}

 if (is_file("./create.sql")) {
      ob_start();
      include "./create.sql";
      $contents = ob_get_contents();
      ob_end_clean();
//Protège les caractères spéciaux d'une chaîne pour l'utiliser dans une requête SQL
      $contents = mysqli_real_escape_string  ($link , $contents);
//attention l'ordre des parametre est inversé par rapport à un mysql_query()
     $res = mysqli_multi_query($link, $contents);
}
mysqli_close($link);
0