sql >> Database teknologi >  >> RDS >> Mysql

Kører MySQL *.sql-filer i PHP

Dette spørgsmål dukker op fra tid til anden. Der er ingen god løsning til at køre et .sql-script direkte fra PHP. Der er edge-tilfælde, hvor sætninger, der er almindelige i et .sql-script, ikke kan udføres som SQL-sætninger. For eksempel har mysql-værktøjet indbyggede kommandoer som ikke genkendes af MySQL-serveren, f.eks. CONNECT , TEE , STATUS , og DELIMITER .

Så jeg giver +1 til @Ignacio Vazquez-Abrams's svar . Du bør køre dit .sql-script i PHP ved at kalde mysql værktøj, for eksempel med shell_exec() .

Jeg fik denne test til at virke:

$command = "mysql --user={$vals['db_user']} --password='{$vals['db_pass']}' "
 . "-h {$vals['db_host']} -D {$vals['db_name']} < {$script_path}";

$output = shell_exec($command . '/shellexec.sql');

Se også mine svar på disse relaterede spørgsmål:



  1. Top 7 job, der kræver SQL

  2. Hvordan håndterer man fejl for duplikerede poster?

  3. Hvordan kan jeg skrive SQLite Real-værdier til Java BigDecimal-værdier?

  4. Komplet vejledning til at rette SQL-databasefejl 5243