这个方法并不存在, 但是可以用PHP代码来实现SQL文件执行, 实际上就是多语句拆分
function read_sql_file(string $file)
{
$comment_regex = '/(?<!:)\/\/.*|\/\\*(\s|.)*?\*\/|--[^\n]+/';
$lines = explode("\n", preg_replace($comment_regex, '', co::readFile($file)));
$init_sql = [];
$multi = false;
foreach ($lines as $index => $line) {
if (strlen($line) === 0) {
continue;
}
if (substr($line, -1, 1) !== ';') {
if (!$multi) {
$multi = true;
goto _new_line;
} else {
_append:
$end_line = &$init_sql[count($init_sql) - 1];
$end_line = $end_line . $line . "\n";
}
} else {
if ($multi) {
$multi = false;
goto _append;
} else {
$multi = false;
_new_line:
$init_sql[] = "{$line}";
}
}
}
return $init_sql;
}
$sql_file = read_sql_file(__DIR__ . '/test.sql');
foreach ($sql_file as $line) {
if (!$mysql->query($line)) {
echo "Failed! Error#{$mysql->errno}: {$mysql->error}\n";
exit(1);
}
}