简体   繁体   English

从Joomla 2.5中的表中选择时出现SQL语法错误

[英]SQL syntax error when selecting from tables in Joomla 2.5

I get this error: 我收到此错误:

You have an error in your SQL syntax; 您的SQL语法有误; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM lg3ni_k2_favorites AS faves, lg3ni_k2_items AS items, WHERE (faves.user' at line 1 SQL=SELECT faves.item_id AS item_id, items.title AS items_name, FROM lg3ni_k2_favorites AS faves, lg3ni_k2_items AS items, WHERE (faves.user_id='349') AND (faves.item_id = items.id) 检查与您的MySQL服务器版本相对应的手册以获取正确的语法,以在'FROM lg3ni_k2_favorites AS faves, lg3ni_k2_items AS项目,WHERE(faves.user')附近使用第1行SQL = SELECT faves.item_id AS item_id,items.title AS items_name ,FROM lg3ni_k2_favorites AS lg3ni_k2_favoriteslg3ni_k2_items AS项目,WHERE(faves.user_id ='349')AND(faves.item_id = items.id)

From the syntax: 从语法上:

$db =& JFactory::getDBO();

    $query = "SELECT faves.item_id AS item_id, items.title AS items_name, ";
    $query .= "FROM `#__k2_favorites` AS faves, `#__k2_items` AS items, ";
    $query .= "WHERE (faves.user_id='".intval($userID)."') ";
    $query .= "AND (faves.item_id = items.id) ";

    $db->setQuery($query);
    $ff = $db->loadObjectList();
    echo $db->getErrorMsg();
    return $ff; 

Where is the problem? 问题出在哪儿?

You have an extra comma after items_name, ,another extra comma after AS items 您在items_name,之后有一个逗号items_name,AS items之后还有另一个逗号

 $query = "SELECT faves.item_id AS item_id, items.title AS items_name ";
 $query .= "FROM `#__k2_favorites` AS faves, `#__k2_items` AS items ";

remove comma from both below queries 从以下两个查询中删除逗号

$query = "SELECT faves.item_id AS item_id, items.title AS items_name ";
    $query .= "FROM `#__k2_favorites` AS faves, `#__k2_items` AS items ";

Try using the following: 尝试使用以下内容:

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

$query->select($db->quoteName('faves.item_id') . ' AS ' . $db->quoteName('item_id') . ',' . $db->quoteName('items.title') . ' AS ' . $db->quoteName('items_name')))
      ->from($db->quoteName('#__k2_favorites') . ' AS ' . $db->quoteName('faves') . ',' . $db->quoteName('#__k2_items') . ' AS ' . $db->quoteName('items'))
      ->where($db->quoteName('faves.user_id') . ' = '. $db->quote(intval($userID)) . ' AND ' . $db->quoteName('faves.item_id') . ' = '. $db->quote('items.id'));     
$db->setQuery($query);

$ff = $db->loadObjectList();

This uses Joomla coding standards, however please note that I haven't tested it so let me know if it works or not. 它使用Joomla编码标准,但是请注意,我尚未对其进行测试,因此请告知其是否有效。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM