我想在php代码中删除一个数据库。 在我的应用程序中,我有以下代码。
$cmd = "mysql -h $host --port=$port -u $user -p$pass -e 'create database $database'";
$logger->log("running command '$cmd'");
exec($cmd, $output, $status);
当到达代码时,它会挂起并且程序永远不存在。 根据log命令是正确的。 这是日志有以下行。
running command 'mysql -h localhost --port=3306 -u root -p123 -e 'drop database my_test_db''
我复制了命令并在终端上手动运行。然后它在几秒钟内删除了数据库。 然后我在一个简单的PHP脚本中硬编码命令并运行。然后它也在几秒钟内删除了数据库。
我无法弄清楚它在我的应用程序中挂起的原因。你可以帮帮我吗。
其他信息:在应用程序中,会为同一个数据库创建一个连接,并且在发生这种情况时已启动事务。
答案 0 :(得分:0)
更好的方法是从PHP的常规连接创建或删除数据库,而不是调用外部命令。
创建数据库的功能 http://php.net/manual/en/function.mysql-create-db.php
删除数据库的功能 http://php.net/manual/en/function.mysql-drop-db.php