2015-12-25 1 views
1

Я прочитал CSV-файл с использованием функции PHP fgetcsv и добавил/обновил продукты из csv в мой магазин opencart. Для этого я должен проверить, существует ли продукт или нет.В opencart запрос SELECT дает пустой результат, когда запись присутствует в таблице

Я написал следующую функцию для проверки, если продукт существует в моей модели:

function existProduct($searchValue) 
{  
    $sql ="SELECT `product_id` FROM ".DB_PREFIX."product WHERE `model`='".$searchValue."'"; 

    $result2 = $this->db->query($sql); 

    if ($result2->num_rows > 0) 
    { 
     return $result2->row['product_id']; 
    } 

    return false; 
} 

и вызовите контроллер следующим образом:

$productID = $this->model_tool_cust_import->existProduct($searchValue); 

возвращает пустой результат, когда продукт присутствует в таблице продуктов, но если я передаю строковое значение в одинарных кавычках, он работает, например 'YS16034137':

$productID = $this->model_tool_cust_import->existProduct('YS16034137'); 

Я попытался использовать trim, но это не сработало.

При использовании var_dump($searchValue) я получил этот результат:

string 'Y�S�1�6�0�3�4�1�3�7' (length=19) 

Кроме того, когда я пытаюсь echo $searchValue ; это я получил выход YS16034137.

+0

С вашего вопроса неясно, что ваш код * должен делать *. В основном вы описываете *, что не работает *. [Как задать хороший вопрос?] (Http://stackoverflow.com/help/how-to-ask) - Рассмотрите возможность редактирования своего вопроса, чтобы подчеркнуть ожидаемое поведение. –

+0

Какое имя вашей таблицы? является '.DB_PREFIX' намеренным или это только' DB_PREFIX'? до DB_PREFIX. –

+0

DB_PREFIX получить префикс в открытой корзине, имя таблицы - oc_product. echo $ ql Я получил вывод «SELECT product_id FROM oc_product WHERE' model' = 'YS16034137' " –

ответ

0

Я получил решение для него, когда я прочитал значение столбца из CSV его добавить «нулевой символ» (\ 0) между символами в строке. Я не знаю, откуда, но я удаляю нулевой символ из строки, используя str_replace ("\ 0", "", $ value), тогда он работает на меня благодаря.