[PHP-MySQL] Executer un script SQL

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

3 réponses

  1. 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 ;)
    1. 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
      1. Je suis également impatient d'avoir la réponse...
        1. 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);

      Discussions similaires

      question pix mot caché

      7 réponses