2010-05-09 56 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");