mysql - Joomla Jdatabase select 语句不工作

标签 mysql joomla

下面的 Joomla (3.3) Jdatabase 代码(由 Fabrik 使用)应该在数据库中查找名称。该名称以表单 (var $data) 的形式提交,并且值为“green”。

但是,在执行代码时,我收到错误消息:

 1054 - Unknown column 'green' in 'where clause' SQL=SELECT `user_id` FROM `weq_extendedreg_users` WHERE `cf_collectivename` = `green`

Joomla PHP 代码:

$db = JFactory::getDbo();

// Create a new query object.
$query = $db->getQuery(true);
$query->select($db->quoteName('user_id'));
$query->from($db->quoteName('#__extendedreg_users'));
$query->where($db->quoteName('cf_collectivename') . ' = '. $db->quoteName($data)); //use  $data for this form element
$db->setQuery($query);
$db->execute();
$collective_id = $db->loadResult(); //query returns null if fails

//var_dump($data,$collective_id);exit;
return isset($collective_id);

我不明白 where 语句有什么问题,为什么“代码认为”表单变量是表列? (我检查了 http://docs.joomla.org/Selecting_data_using_JDatabase )

有什么想法吗?

最佳答案

试试这个

$db->quote($data) instead of $db->quoteName($data)

关于mysql - Joomla Jdatabase select 语句不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24140712/

相关文章:

mysql - 正确的数据库设计

php - 通过存储过程和PHP添加信息?

mysql - 关于SQL View,我有一些困惑

php - pdo 准备好的声明不起作用

php - 是否有 Joomla 插件可以在点击后显示/隐藏内容?

php - 自定义验证消息不起作用?

joomla - 如何覆盖virtuemart用户 Controller ?

php - Joomla 3 : Hide Class on Home Page

php - 为什么我的文章中的 PHP 被字面解释为字符串而不是 PHP?

javascript - 如何删除模板标题中的 JavaScript 代码 (Joomla! 3.0.x)?