2010-05-09 50 views
0

我有一个名为script.sql的文件mysql通过查询而不是bash导入脚本

我该如何使用q mysql查询来运行该文件?

global $sql; 
$res = $sql->query("\. /script.sql")or die(mysql_error()); 

给出:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '\. /script.sql' at line 1 

回答

0

阅读文件,解析成单独的SQL语句,然后执行它们。

+0

这听起来很棘手! – vick 2010-05-09 10:28:43

+0

不是很有用。 – 2010-05-09 10:29:37

+0

@vick:是的。有解析SQL的例程,但我还没有看到一个用于PHP的例程。 – 2010-05-09 10:30:37

0

您可以使用mysql多查询,但它是一个PITA。一个简单的办法正在运行的所有文件中找到的查询(它可能会失败取决于内容):

foreach (explode(",", file_get_contents("/path/to/script.sql")) as $query) { 
     $sql->query($query); 
} 

但最简单和最快的是使用的mysqlimport。如果你需要从脚本启动它,你可以使用PHP来调用命令行:

passhthru("mysql -hhost -uuser ppassword dbname < /path/to/script.sql");