有人可以告訴我我做錯了什麼嗎?我有一個PHP腳本,應該用cron作業執行,從數據庫中提取數據並將其放入csv文件中。 當我從瀏覽器運行它時,它工作得很好,所以我確定我的查詢是正確的。但是,當我使用cron作業時,它返回「沒有指定輸入文件。」並且不寫入文件。fronn與cron作業
這裏是我的代碼:
科雷:
/home/ACCOUNT_NAME/public_html/directory/report.sh
report.sh
php -q /home/ACCOUNT_NAME/public_html/directory/report.php
php -q /home/ACCOUNT_NAME/public_html/directory/report_mail.php
report.p HP
<?php
$con = mysql_connect("localhost", "my_un", "my_pw") ;
if(!$con){
die('Could not connect: ' . mysql_error()) ;
}
mysql_select_db("my_db", $con) ;
if (!function_exists('fputcsv')){
function fputcsv($objFile,$arrData,$strDelimiter=',',$strEnclose='"') {
$strNewLine="\n";
$strToWrite = '';
foreach ($arrData as $strCell){
//Test if numeric
if (!is_numeric($strCell)){
//Escape the enclose
$strCell = str_replace($strEnclose,$strEnclose.$strEnclose,$strCell);
//Not numeric enclose
$strCell = $strEnclose . $strCell . $strEnclose;
}
if ($strToWrite==''){
$strToWrite = $strCell;
} else {
$strToWrite.= $strDelimiter . $strCell;
}
}
$strToWrite.=$strNewLine;
fwrite($objFile,$strToWrite);
}
}
// CUT - MY QUERY HERE
$fp = fopen("/reports/report.csv" , "w+");
foreach ($list as $line) {
fputcsv($fp, split(',', $line));
}
?>
CSV文件應
/home/ACCOUNT_NAME/public_html/directory/reports/report.csv
缺少什麼我在這裏下儲存? TIA
你需要一個基本路徑添加到您的fopen路徑,目前路徑將從根目錄解析。 – datasage
$ fp = fopen(「/ reports/report.csv」,「w +」);請檢查'/reports/report.csv' – 2013-02-01 22:28:54
[**請不要在新代碼**中使用'mysql_ *'函數](http://bit.ly/phpmsql)。他們不再被維護[並被正式棄用](https://wiki.php.net/rfc/mysql_deprecation)。看到[**紅框**](http://j.mp/Te9zIL)?學習[*準備的語句*](http://j.mp/T9hLWi),並使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli) - [這篇文章](http://j.mp/QEx8IB)將幫助你決定哪個。如果你選擇PDO,[這裏是一個很好的教程](http://j.mp/PoWehJ)。 –