Mysql 命令通过 shell_exec,只有第一个有效
Mysql command via shell_exec, only the first one works
我需要通过 shell_exec 运行 几个 sql 命令。
第一个完美运行,但其他的不行。
我通过 shell_exec 回应了命令 运行,并且这些命令在终端中有效。
我做错了什么?
$test1 = shell_exec('sudo mysql -u root -e "create database '.$name_db.';"');
$test2 = shell_exec('sudo mysql -u root -e "create user '.$user_db.'@localhost identified by '.$pass_db.';"');
$test3 = shell_exec('sudo mysql -u root -e "grant all privileges on '.$name_db.'.* to \''.$user_db.'\'@localhost;"');
$test4 = shell_exec('sudo mysql -u root -e "flush privileges";');
$test5 = shell_exec("sudo zcat $path_db_zip | mysql -u root $name_db");
所有“$test*”打印'NULL'。
更好的方法是将其放在一个sh文件中并作为参数发送。
cat "mysql -u root -e create database ``;create user ``@`localhost identified by ; grant all privileges on `` to ``@`localhost` with grant option; flush privileges;" > /addMysql.sh
然后 运行 shel_exec( sudo /addMysql.sh $db $username $password)
我没有测试过,但你可以这样做。
我需要通过 shell_exec 运行 几个 sql 命令。 第一个完美运行,但其他的不行。
我通过 shell_exec 回应了命令 运行,并且这些命令在终端中有效。
我做错了什么?
$test1 = shell_exec('sudo mysql -u root -e "create database '.$name_db.';"');
$test2 = shell_exec('sudo mysql -u root -e "create user '.$user_db.'@localhost identified by '.$pass_db.';"');
$test3 = shell_exec('sudo mysql -u root -e "grant all privileges on '.$name_db.'.* to \''.$user_db.'\'@localhost;"');
$test4 = shell_exec('sudo mysql -u root -e "flush privileges";');
$test5 = shell_exec("sudo zcat $path_db_zip | mysql -u root $name_db");
所有“$test*”打印'NULL'。
更好的方法是将其放在一个sh文件中并作为参数发送。
cat "mysql -u root -e create database ``;create user ``@`localhost identified by ; grant all privileges on `` to ``@`localhost` with grant option; flush privileges;" > /addMysql.sh
然后 运行 shel_exec( sudo /addMysql.sh $db $username $password)
我没有测试过,但你可以这样做。