2012-01-31 125 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

相關問題