sql >> Database >  >> RDS >> Mysql

MySQL *.sql-bestanden uitvoeren in PHP

Deze vraag komt van tijd tot tijd naar voren. Er is geen goede oplossing om een ​​.sql-script rechtstreeks vanuit PHP uit te voeren. Er zijn randgevallen waarbij instructies die gebruikelijk zijn in een .sql-script niet kunnen worden uitgevoerd als SQL-instructies. De mysql-tool heeft bijvoorbeeld ingebouwde opdrachten die niet worden herkend door de MySQL Server, b.v. CONNECT , TEE , STATUS , en DELIMITER .

Dus ik geef +1 aan @Ignacio Vazquez-Abrams's antwoord . U moet uw .sql-script in PHP uitvoeren door de mysql . aan te roepen tool, bijvoorbeeld met shell_exec() .

Ik heb deze test werkend gekregen:

$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');

Zie ook mijn antwoorden op deze gerelateerde vragen:



  1. MySQLi count(*) geeft altijd 1 . terug

  2. Inzicht in SQL Server LOCKS op SELECT-query's

  3. Een .sql-script uitvoeren met MySQL met JDBC

  4. PostgreSQL-fout:relatie bestaat al