2012-01-31 126 views
0

我一直在试图运行这个功能,我在所有可能的方式重写它,但我不能得到它的工作:SELECT INTO OUTFILE不起作用?

public function backup($location) { 
    $database = 'logindb'; 

    $backup = $location.'/'.$database.'_backup_'.date('Y').'_'.date('m').'_'.date('d').'.sql'; 

    $sql = "SELECT * INTO OUTFILE '$backup' FROM users"; 

    if ($stmt = $this->connect->prepare($sql)){ 
     if ($stmt->execute()) { 
      echo $stmt->error();  
     } 
     $stmt->close(); 
     echo 'done'; 
    } else { 
     echo 'Error'; 
    } 
} 

什么我做错了还是什么地方出错了?

+1

,如果你不说这是错误我们如何可以帮助? – dynamic 2012-01-31 20:15:27

+1

你有什么错误吗? – 2012-01-31 20:15:45

+1

我没有得到任何错误,我运行它并没有发生任何反应。 – Roland 2012-01-31 20:25:45

回答

2

型PS-AF,看看有什么是你的web服务器的用户名(通常是Apache或httpd的) 然后键入乔敦 - R的阿帕奇:阿帕奇(或httpd的respactively)在一个文件夹最多 您的备份目录 然后敲入chmod U + w^ 我认为既然web服务器尝试写入文件,它必须具有写权限

+0

outfile在mysql上运行,不在应用程序级别。这意味着它的MySQL权限不是Apache。你可以自己尝试。 – vimdude 2012-02-03 23:53:47

2

mysql用户必须在$备份路径写访问

+0

我正在本地主机上运行脚本(XAAMP),我认为我有作为root用户的写入权限。 – Roland 2012-01-31 20:26:51

+0

mysql用户不是root用户。以root身份执行以下操作: chown -R mysql:mysql [您的备份目录] – vimdude 2012-01-31 20:46:31

+0

以及我如何知道它是否有? – Roland 2012-01-31 20:55:40

相关问题