给出的代码在Windows系统中可执行吗?好像是Linux命令
echo 'create database foo2' | mysql -uroot
mysqldump --skip-triggers -uroot foo | mysql -uroot foo2
已编辑
我正在执行以下代码,但没有得到我所期望的。
<?php
mysql_connect('localhost','root','********');
echo 'create database pranav_chk'. | mysql -u root
mysqldump --skip-triggers -u root pranav_test | mysql -u root pranav_chk;
?>
最佳答案
该代码使用了三个命令行功能:echo
命令
通过管道连接命令(|
符号)mysql
命令行客户端
这三个版本在Windows和Linux上均可用并且工作相同(在这里使用的程度),因此代码实际上是可移植的。
编辑:代码需要在shell中运行,您不能仅仅将其放入PHP脚本中。您必须使用exec()
,如下所示:
<?php
exec("echo 'create database foo2' | mysql -uroot");
exec("mysqldump --skip-triggers -uroot foo | mysql -uroot foo2");
?>
但是,之前的
mysql_connect()
调用对您没有任何好处,因为它仅对PHP脚本有效。您必须直接通过命令行进行身份验证。或者,您可以使用它和mysql_create_db()
替换第一行exec()
。