2013-05-28 108 views
0

我遇到了一個腳本問題,我寫了一個自動更新csv文件內容的庫存級別的腳本。 在我本地的zend服務器上,它完美運行。請注意,phpMyAdmin有用戶root,沒有密碼。從php文件運行mysql查詢時出現連接問題

但是,當上傳到客戶的服務器我得到一個錯誤信息:

PHP Fatal error: 1045:Access denied for user 'xxxxxx_xxxxxx'@'localhost' (using password: YES) ::  LOAD DATA INFILE '/home/xxxxxxxx/public_html/tradeboxstock/stock.csv' 
INTO TABLE stock_temp 
FIELDS TERMINATED BY ',' 
ENCLOSED BY '"' 
LINES TERMINATED BY ' 
' (products_model, products_quantity); in /home/xxxxxxxx/public_html/includes/classes/db/mysql/query_factory.php on line 121 

的一段代碼低於:

//Set directory of csv file 
$file_path = DIR_FS_CATALOG . 'tradeboxstock/stock.csv'; 

// Empty old data from the temp table 
$db->Execute("DELETE FROM ".TABLE_STOCK_TEMP.""); 
$table = ("".TABLE_STOCK_TEMP.""); 
echo "Historical stock data cleared"; 
?> 
</br> 
<?php 
echo "Processing - Please wait..."; 

//extract data from the csv to the temp table 
$query = <<<eof 
LOAD DATA INFILE '$file_path' 
INTO TABLE $table 
FIELDS TERMINATED BY ',' 
ENCLOSED BY '"' 
LINES TERMINATED BY '\r\n' 
(products_model, products_quantity); 
eof; 
$db->Execute($query); 
echo "Import to temp database table complete"; 

我知道,到數據庫的連接是可以的,因爲我得到的回聲說,歷史股票已被清除,所以我不明白爲什麼我得到一個訪問被拒絕的錯誤,當它到達它應該讀取csv內容到臨時表的部分。

如上所述,這在我本地的zend服務器上完美工作。

任何幫助之前,我撕我的頭髮

回答

0

檢查授予PHP用戶的權限用來連接到MySQL大加讚賞。

mysql> SHOW GRANTS FOR 'user'@'localhost' 

對於導入工作用戶燒成LOAD DATA必須有FILE特權。

mysql> GRANT FILE ON *.* TO 'user'@'localhost'