2014-10-10 58 views
3

我正在使用wpdb類來運行LOAD DATA LOCAL INFILE。它工作正常,數據插入正確 - 但它仍然返回0,所以回聲示例中沒有更新。這是基於LOAD DATA方法的預期結果嗎?如果是這樣,是否有其他方式知道進程運行並確實插入了行?wpdb'加載數據文件'

非常感謝!

菲利普

global $wpdb; 
$filename = 'file.csv'; 
$sql = "LOAD DATA LOCAL INFILE '" . $filename . "' 
INTO TABLE Stock_Item 
FIELDS TERMINATED BY ',' ENCLOSED BY '\"' ESCAPED BY '\"' LINES TERMINATED BY '\n' IGNORE 1 ROWS 
(stock_item_code, stock_item_name)"; 

$result = $wpdb->query($sql);   
if ($result === false) { echo 'Query Fail'; } 
if ($result === 0) { echo 'No update'; } 
if ($result > 0) { echo 'Success'; } 

回答

2

我對這種方式這樣做。

global $wpdb; 
     $datafile= $_FILES['file']['tmp_name']; 
     $file=$upload_dir['basedir'].'/'.$_FILES['file']['name']; 
     $fileurl=$upload_dir['baseurl'].'/'.$_FILES['file']['name']; 
     if (!move_uploaded_file(
     $_FILES['file']['tmp_name'], 
     $file)) { 
     print_r('Failed to move uploaded file.'); 
     } 
     $sql=" 
     LOAD DATA LOCAL INFILE '".$fileurl."' INTO TABLE ".CRSSEARCH_TABLE." 
     FIELDS TERMINATED BY ',' 
     LINES TERMINATED BY '\r\n' 
     (ucn,name, course_number, standard, accredition,attended_course_form,attended_course_to,status,validity,location); 
     "; 
     $query = $wpdb->query($sql); 

對我來說工作很好,就像魅力一樣。