sql >> Databasteknik >  >> RDS >> Mysql

Kör MySQL *.sql-filer i PHP

Den här frågan dyker upp då och då. Det finns ingen bra lösning för att köra ett .sql-skript direkt från PHP. Det finns edge-fall där satser som är vanliga i ett .sql-skript inte kan köras som SQL-satser. Till exempel har mysql-verktyget inbyggda kommandon som inte känns igen av MySQL-servern, t.ex. CONNECT , TEE , STATUS och DELIMITER .

Så jag ger +1 till @Ignacio Vazquez-Abramss svara . Du bör köra ditt .sql-skript i PHP genom att anropa mysql verktyg, till exempel med shell_exec() .

Jag fick det här testet att fungera:

$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 även mina svar på dessa relaterade frågor:



  1. Hur man infogar flera rader i en enda SQL-fråga – Veckans intervjufråga #069

  2. 3 sätt att extrahera året från ett datum i SQL Server (T-SQL)

  3. Konvertera kolumnen Datetime från UTC till lokal tid i select-satsen

  4. Konvertera SQLITE SQL dumpfil till POSTGRESQL