我创建的一个数据库名字为 books
echo exec("mysqldump -uroot -proot books > books_base.sql ");
但是只有books.sql文件生成,文件里面却是空白,
exec执行win的echo命令都正常,
为什么呢??

解决方案 »

  1.   


    exec 返回的命令执行结果的最后一行。 mysqldump -uroot -proot books > books_base.sql  
    做了重定向, 根本没命令结果输出。 所以 echo 了空的东西。
    ------------------------------------
    免费算命 - 指点迷津网 http://www.zhidianmijin.com
      

  2.   

    楼上兄弟误解了我的意思,我是的不是echo输出空的,我指的是exec所执行的
    mysqldump -uroot -proot books > books_base.sql 没有效果
    也就是说我的数据库备份命令没有执行备份效果,并不是exec输出的打印结果我在举一个例子:
    exec("mysql -uroot -proot -D books < books_base.sql ")
    现在比方说我在books_base.sql中写的是
    drop database if exists books;
    create database books_base;
    这是创建数据库的命令
    我也不需要什么输出结果,我希望执行上面命令后,我的数据库里能被创建一个叫books的数据
    可是执行之后却没有创建? 为什么呢? 我单独在cmd命令行执行mysql -uroot -proot -D books < books_base.sql 没有问题,为什么?