0

我有一个 SQL 脚本,打算在运行单元测试时用作数据夹具。我知道 Doctrine DBAL 有一个用于 CLI 的导入命令,但我只对在我的单元测试脚本中运行它感兴趣。

基于

\Doctrine\DBAL\Tools\Console\Command\ImportCommand

我正在努力理解如何完全从 PHP 中实现这一点,如果我能提供帮助,而不使用 exec。

谁能指出我正确的方向?

谢谢

4

1 回答 1

1

查看 ImportCommand 的代码,您可以提取其基本部分来创建自己的函数:

protected function executeSqlFile(Connection $conn, $file)
{
    $sql = file_get_contents($file);
    $lines = 0;

    $stmt = $conn->prepare($sql);
    $stmt->execute();

    do {
        // Required due to "MySQL has gone away!" issue
        $stmt->fetch();
        $stmt->closeCursor();

        $lines++;
    } while ($stmt->nextRowset());

    return $lines;
}
于 2013-10-20T12:43:40.183 回答