簡體   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