Този въпрос възниква от време на време. Няма добро решение за стартиране на .sql скрипт директно от PHP. Има крайни случаи, при които изрази, често срещани в .sql скрипт, не могат да бъдат изпълнени като SQL изрази. Например инструментът mysql има вградени команди
които не са разпознати от MySQL сървъра, напр. CONNECT
, TEE
, STATUS
и DELIMITER
.
Затова давам +1 на отговор
. Трябва да стартирате своя .sql скрипт в PHP, като извикате mysql
инструмент, например с shell_exec()
.
Сработих този тест:
$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');
Вижте и моите отговори на тези свързани въпроси:
- Зареждане на .sql файлове отвътре PHP
- възможно ли е да се извика sql скрипт от съхранена процедура в друг sql скрипт?
- PHP:множество SQL заявки в един израз mysql_query