我在joomla中使用Hikashop购物车。每当用户将产品添加到购物车时,Hikashop会将用户的会话ID添加到#__ hikashop_cart表中。我试图通过将它与从JFactory :: getSession代码获得的id值匹配来选择该会话ID。
ATM我收到以下错误:
1054 - 未知栏' acl7e1bn099rrlhkvsrhl13bu7'在' where子句' SQL = SELECT session_id
FROM hady9_hikashop_cart
WHERE session_id = acl7e1bn099rrlhkvsrhl13bu7
我的查询如下,任何帮助都将不胜感激。
$user = JFactory::getUser();
$id = $user->get('id');
$session =& JFactory::getSession();
$thesession = $session->getId();
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query
->select($db->quoteName('session_id'))
->from($db->quoteName('#__hikashop_cart'))
->where('session_id = '.$thesession);
$db->setQuery($query);
$results = $db->loadResult();
echo $results;
答案 0 :(得分:0)
SELECT session_id
FROM hady9_hikashop_cart
WHERE session_id = acl7e1bn099rrlhkvsrhl13bu7
您已列出acl7e1bn099rrlhkvsrhl13bu7
没有引号,因此MySQL将其视为列名,当然不存在。引用它应该可以解决问题:
$query
->select($db->quoteName('session_id'))
->from($db->quoteName('#__hikashop_cart'))
->where('session_id = '. $db->quote($thesession));
答案 1 :(得分:0)
SELECT session_id FROM hady9_hikashop_cart
WHERE session_id = acl7e1bn099rrlhkvsrhl13bu7
此处生成的查询应为
SELECT session_id FROM hady9_hikashop_cart
WHERE session_id = 'acl7e1bn099rrlhkvsrhl13bu7'
进行必要的更改以在acl7e1bn099rrlhkvsrhl13bu7周围添加报价。
答案 2 :(得分:0)
您必须引用会话ID,最好使用quote()
方法。
$query
->select($db->quoteName('session_id'))
->from($db->quoteName('#__hikashop_cart'))
->where('session_id = '. $db->quote($thesession));