2014-10-10 2 views
3

Я использую класс wpdb для запуска LOAD DATA LOCAL INFILE. Он отлично работает, и данные вставлены правильно - но он все равно возвращает 0, поэтому в примере не отображается «Нет обновления». Является ли это ожидаемым результатом на основе метода LOAD DATA? Если да, есть ли другой способ узнать, что процесс запущен и действительно вставлял строки?wpdb 'load data file'

Спасибо большое!

Филипп

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); 

и работать нормально для меня, как очарование.

 Смежные вопросы

  • Нет связанных вопросов^_^