Nette\Database\Helpers::loadFromFile PHP Метод

loadFromFile() публичный статический Метод

Import SQL dump from file - extremely fast.
public static loadFromFile ( Connection $connection, $file ) : integer
$connection Connection
Результат integer count of commands
    public static function loadFromFile(Connection $connection, $file)
    {
        @set_time_limit(0);
        // @ function may be disabled
        $handle = @fopen($file, 'r');
        // @ is escalated to exception
        if (!$handle) {
            throw new Nette\FileNotFoundException("Cannot open file '{$file}'.");
        }
        $count = 0;
        $delimiter = ';';
        $sql = '';
        $pdo = $connection->getPdo();
        // native query without logging
        while (!feof($handle)) {
            $s = rtrim(fgets($handle));
            if (!strncasecmp($s, 'DELIMITER ', 10)) {
                $delimiter = substr($s, 10);
            } elseif (substr($s, -strlen($delimiter)) === $delimiter) {
                $sql .= substr($s, 0, -strlen($delimiter));
                $pdo->exec($sql);
                $sql = '';
                $count++;
            } else {
                $sql .= $s . "\n";
            }
        }
        if (trim($sql) !== '') {
            $pdo->exec($sql);
            $count++;
        }
        fclose($handle);
        return $count;
    }

Usage Example

Пример #1
0
 public function __construct()
 {
     $connection = new \Nette\Database\Connection('mysql:host=127.0.0.1;dbname=test', 'root', '');
     \Nette\Database\Helpers::loadFromFile($connection, __DIR__ . '/sql/db.sql');
     $structure = new \Nette\Database\Structure($connection, new \Nette\Caching\Storages\FileStorage(__DIR__ . '/../../temp/'));
     $conventions = new \Nette\Database\Conventions\DiscoveredConventions($structure);
     $this->database = new \Nette\Database\Context($connection, $structure, $conventions, new \Nette\Caching\Storages\FileStorage(__DIR__ . '/../../temp/'));
     $this->cache = new Nette\Caching\Storages\FileStorage(__DIR__ . '/../../temp');
 }
All Usage Examples Of Nette\Database\Helpers::loadFromFile