2015-08-07 3 views
-2
$datos = explode(';',$linea); 
    $product_ean = trim($datos[0]); 
    $product_price = trim($datos[1]); 
    $name_es = trim($datos[2]); 
    $short_description_es = trim($datos[3]); 

    echo $product_ean,'<br>'; 
    echo $product_price,'<br>'; 
    echo $name_es ,'<br>'; 
    echo $short_description_es,'<br>'; 

    $db = JFactory::getDbo(); 
    $query = $db->getQuery(true); 

    $columns = array('product_id' ,'product_ean', 'product_price', 'name_es-ES', 'short_description_es-ES'); 
    $values = array(NULL, $product_ean, $product_price, $name_es, $short_description_es); 

    $query 
     ->insert($db->quoteName('vrg_jshopping_products')) 
     ->columns($db->quoteName($columns)) 
     ->values(implode(',', $values)); 

    $db->setQuery($query); 
    $db->execute(); 

Ошибка при отображении страницы об ошибке: Application Инстанцирование Ошибка: У Вас есть ошибка в вашем SQL синтаксиса; проверьте руководство, которое соответствует версии сервера MySQL для правильного синтаксиса, чтобы использовать рядом с '600,1000, articulo нуэво 1, Articulo де тест 1)' в строке 3У меня есть ошибка в joomla - запрос пожалуйста. У меня есть и ошибка в этом запросе

SQL = INSERT INTO vrg_jshopping_products (product_id, product_ean, product_price , name_es-ES, short_description_es-ES) VALUES (, 600,1000, articulo Каюты 1, Articulo де тест 1)

+0

Попробуйте использовать 0 вместо Null для значений или просто выньте поле/значения из массивов и дайте ему автоинкремент. Также используйте #__ вместо жесткого кодирования префикса. – Elin

+0

например: ?? please => .use #__ вместо hardcoding префикс. - – Edgargmc

+0

'vrg_jshopping_products' должно быть' #__ jshopping_products' .. но вы можете видеть из сообщения об ошибке, что проблема в том, что вы вставляете 4 значения в 5 полей и имеете дополнительную запятую (из-за нулевого значения). – Elin

ответ

0

вы получаете SQL ошибку, потому что вы не котируется ваш values.You может использовать ниже код.

$columns = array('product_id' ,'product_ean', 'product_price', 'name_es-ES', 'short_description_es-ES'); 
$values = array(NULL, $product_ean, $product_price, $name_es, $short_description_es); 


// Prepare the insert query. 
$query 
    ->insert($db->quoteName($table)) 
    ->columns($db->quoteName($columns)) 
    ->values(implode(',', $db->quote($values))); 
+0

Почему не '-> значения ($ db-> цитата ($) значения); '? – Elin

+0

@Elin Я не знал, что он принимает массив, а также. Спасибо. – Irfan

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