我在' 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).
答案 0 :(得分:0)
您没有收到任何错误,因为您没有发现任何错误。看看How to do SQL exception / error handling。
至少做一个$query->dump()
并在控制台中运行查询,如果你不知道出了什么问题。
我不明白你为什么引用比较$form_username
和$form_productname
的价值。但也许已经很晚了,我累了。