[PHP-MySQL] Executer un script SQL
MarieJ
-
Sennoa -
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
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:
- Erreur mysql dans le fichier : /engine/classes/mysql.php à la ligne 53
- Cheat engine - Télécharger - Outils Internet
- Fichier bin - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier epub - Guide
- Fichier rar - Guide
3 réponses
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 ;)
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 ;)
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
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
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
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);