2012-06-07 50 views
1

我正尝试使用shell_exec和mysql命令创建数据库。由于几个原因,我不想使用php内建的mysql_query。但是,我不能得到下面的命令执行成功。任何人都可以告诉我一些错误的地方?如何使用php shell_exec和sql命令行创建数据库

$test = shell_exec("mysql -u root -pmypassword create database db_hello;"); 

var_dump($test); 
+5

我真的很想知道“几个原因”是什么 –

+0

shell_exec应该被禁用,我不认为这是一个好主意,我永远不会这样做。 – markus

+1

@ markus-tharkun以及'exec()','passthru()'和'system()' – AustinAllover

回答

6

正确的语法是这样的:

mysql -u [username] -p -e "create database somedb" 

或者

mysql --user=user_name --password=your_password -e "SELECT 1 FROM information_schema.tables" 

参考:http://www.electrictoolbox.com/run-single-mysql-query-command-line/

$cmd = escapeshellcmd('mysql -u [username] -p -e "create database somedb"'); 
$test = shell_exec($cmd); 

var_dump($test); 
+0

当我通过mysql命令行运行时,该命令正常,但是,它通过php运行它不起作用 – Slay

+0

在php中试过你的代码,它似乎不工作。返回NULL。 – Slay

+0

谢谢大家。决定改用mysql_query。 – Slay

0

问题可能是你的PHP MySQL的路径脚本。 对我来说:/ usr/local/bin/mysqld(osx 10)

相关问题