[英]If CSV file not exsist then function keep adding empty rows in to database
我需要一點幫助。 我有一個Model文件,此文件將CSV文件導入數據庫。 但是我的模型文件從C:\\wamp\\www\\cakephp-2.5.6\\app\\tmp\\uploads\\Kontaktid
獲取此CSV文件,如果此文件夾中不存在名為export.csv
CSV文件,則我的函數會繼續添加空行進入數據庫。
我可以做這樣的事情嗎(我試圖將其添加到Controller中,但是不起作用)?
If empty(Kontaktid) {
echo ("CSV file is not found");exit;
}
這是我的控制器文件:
function import() {
$this->Kontaktid->import('export.csv');
}
這是我的模型文件:
<?php
class Kontaktid extends AppModel {
public $validate = array(
'title' => array('rule' => 'notEmpty'),
'body' => array('rule' => 'notEmpty')
);
var $name = 'Kontaktid';
function import($filename) {
// set the filename to read CSV from
$filename = TMP . 'uploads' . DS . 'Kontaktid' . DS . $filename;
// open the file
$handle = fopen($filename, "r");
// read the 1st row as headings
$header = fgetcsv($handle);
// read each data row in the file
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
$this->query ("INSERT into kontaktids(id,Eesnimi,Perenimi,Maakond,Linn,Tanav,Maja,Telefon,lisanumbrid) values('$data[0]','$data[1]','$data[2]','$data[3]','$data[4]','$data[5]','$data[6]','$data[7]','$data[8]')");
$this->query;
}
print "Import done";
// close the file
fclose($handle);
}
}
感謝您的幫助!
您可以使用:
<?php
$filename = '/path/to/export.csv';
if (file_exists($filename)) {
// do your import stuff.
} else {
// File is not exist.
}
?>
檢查此鏈接以獲取更多信息: http : //php.net/manual/en/function.file-exists.php
我建議不要自己編寫代碼,這是一個很棒的庫,可以為您解析csv
https://github.com/parsecsv/parsecsv-for-php
function import($filename) {
// set the filename to read CSV from
$filename = TMP . 'uploads' . DS . 'Kontaktid' . DS . $filename;
if (file_exists($filename)) {
// do your import stuff.
// open the file
$csv = new parseCSV($filename);
//print_r($csv->data);
//count the rows
if( count($csv->data) > 0) {
foreach($csv->data as $data) {
$this->query ("INSERT into kontaktids(id,Eesnimi,Perenimi,Maakond,Linn,Tanav,Maja,Telefon,lisanumbrid) values('$data[0]','$data[1]','$data[2]','$data[3]','$data[4]','$data[5]','$data[6]','$data[7]','$data[8]')");
$this->query;
}
}
print "Import done";
} else {
print "File is not exist";.
}
}
while
條件也應該檢查返回值是否也為NULL
。 如果文件無效,就是這種情況。 來源: http : //php.net/manual/en/function.fgetcsv.php
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.