带连接的Joomla Jdatabase查询代码不起作用

时间:2014-06-10 16:05:33

标签: mysql joomla

我在' Eval'中运行下面的php代码。 Fabrik表单元素的一部分。代码应该在表单字段中返回/放置一个数字,但表单字段中没有任何内容。

当我使用其他查询时(请参阅' $ query->'行)代码确实有效,因此我得到的结论是查询包含错误;但是,当使用表单字段执行相关网页时,不会出现sql错误。

我不知道查询有什么问题(?)

代码:

$form_productname = 'testproduct';
$form_username = 'myname';

$db = JFactory::getDbo();

// Create a new query object.
$query = $db->getQuery(true);

//$query->select($db->quoteName(array('a.id', 'b.productid')));
$query->select($db->quoteName('b.productid'));
$query->from($db->quoteName('#__products', 'b')); 
$query->join('INNER', $db->quoteName('#__extendedreg_users', 'a') . ' ON (' . $db->quoteName('a.user_id') . ' = ' . $db->quoteName('b.owner') . ') 
AND (' . $db->quoteName('a.cf_collectivename') . ' = ' . $db->quote($form_username) . ') 
AND (' . $db->quoteName('b.productname') . ' = ' . $db->quote($form_productname)).')'.;
//echo $query;exit;
$db->setQuery($query);
$db->execute();

$results = $db->loadObjectList();
return count($results);

更新:原因是where语句中的语法php错误:

. $db->quote($form_productname)).

必须是:

. $db->quote($form_productname).

1 个答案:

答案 0 :(得分:0)

您没有收到任何错误,因为您没有发现任何错误。看看How to do SQL exception / error handling

至少做一个$query->dump()并在控制台中运行查询,如果你不知道出了什么问题。

我不明白你为什么引用比较$form_username$form_productname的价值。但也许已经很晚了,我累了。