2012-04-16 68 views
0

我如何可以調用PHP等值線爲該MySQL行:MySQL源代碼通過PHP

mysql> source [path-of-file].sql 
+1

[這](http://stackoverflow.com/questions/5915460/mysql-database-restore-using-php)的問題似乎相當類似於你... – optimusprime619 2012-04-16 12:18:56

+0

這是不平凡的,因爲它涉及用PHP解析查詢。 PHP無法一次執行多個查詢。你*可能*能夠'$查詢= explode(';',file_get_contents('[文件路徑] .sql')); foreach($查詢爲$ query)mysql_query($ query);',*但*如果任何查詢包含文字';'或在文件中的任何位置更改分隔符,則不起作用。 – DaveRandom 2012-04-16 12:22:00

+0

**不要**在命令行上傳遞密碼,如果你選擇走這條路。改爲設置無密碼登錄,請參閱[此處](http://lmorgado.com/blog/2008/08/12/mysql-passwordless-login/)以獲取更多信息。 – 2012-04-16 12:25:13

回答

1

源不是本地mysql命令,而是一個特定的命令行客戶端。

在PHP中,你可以嘗試像:

<?php 
shell("mysql --user=$user --password=$password $database < $file"); 
?> 
+2

是的,在命令中傳遞'$ password'確實是你應該做的事情;)而是創建一個包含密碼的'〜/ .my.cnf'文件,並且刪除除了用戶之外的任何人的讀權限。 。這就是說;這是一個可行的(如果不是搖搖晃晃的)解決方案,所以+1。 – 2012-04-16 12:24:28

+0

我假設它只是一次快速安裝,而不是一個永久的解決方案:P – Menztrual 2012-04-16 12:26:05

+1

雖然我明白這可能是一次性的解決方案,我仍然不會推薦傳遞密碼;) – 2012-04-16 12:26:52