2012-04-16 101 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