🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# Coroutine\MySQL->execFile 这个方法并不存在, 但是可以用PHP代码来实现SQL文件执行, 实际上就是多语句拆分 ```php 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); } } ```