繁体   English   中英

从Joomla SQL表中选择数据,其中任何值都是变量

[英]Selecting Data from Joomla SQL Table where any value is the variable

我正在尝试从数据库中选择ID,名称,用户名或电子邮件列中的任何值作为变量描述的数据。 当我这样做时,我得到一个错误1054,表示$ description中的值的列是未知的-错误如下所示。 我究竟做错了什么?

请注意:jinput中使用的变量值在代码中进一步定义,并且如以下错误所示,已正确分配了一个值。

提前致谢

我的代码:

$db = JFactory::getDbo();
$query = $db->getQuery(true);
$description = $jinput->get('value', null , null);
$db->setQuery(" SELECT * FROM #__users WHERE MATCH(id, name, username, email) AGAINST ($description) ORDER BY #__users.name ");
$db->execute();
$results = $db->loadObjectlist();

这是我的错误:

Unknown column 'Ben' in 'where clause' SQL=SELECT * FROM tud_users WHERE MATCH(id, name, username, email) AGAINST (Ben) ORDER BY tud_users.name

您必须引用您的描述变量,以避免此错误和sql注入漏洞。

这是修改后的代码:

$db = JFactory::getDbo();
$description = JFactory::getApplication()->input->getString('value','');
$db->setQuery("SELECT * FROM #__users WHERE MATCH(id, name, username, email) AGAINST (".$db->quote($description).") ORDER BY #__users.name ");
$db->execute();
$results = $db->loadObjectlist();

使用JFactory :: getApplication()-> input-> getString('value',''); 检索您想要的值。

总是用Joomla方法$ db-> quote();引用内容。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM