我在Fabrik表单元素的'Eval'部分运行下面的php代码。代码应该在表单域中返回/放置一个数字,但是表单域中没有显示任何内容。
当我使用另一个查询(参考'$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).

最佳答案

你没有得到任何错误,因为你没有捕捉到任何错误。看看How to do SQL exception / error handling
如果您无法找出问题所在,请至少执行$query->dump()并在控制台中运行查询。
我不明白你为什么要引用你正在比较的值。但也许已经很晚了,我很累了。

07-25 23:28
查看更多