Php Joomla sql查询usling不喜欢

Php Joomla sql查询usling不喜欢,php,mysql,joomla,Php,Mysql,Joomla,Joomla中的SQL查询有问题,我的代码如下所示: 这将从模块中获取参数: $variable = $params->get( 'variable', '' ); 当我回显$variable时,我得到结果:1 查询的有效部分: $db->setQuery("SELECT * FROM #__table AS t WHERE (t.id NOT LIKE '%1%' AND t.published = 1 但是当我尝试使用一个变量时,它不起作用。我如何正确地使用一个变量来代替手动

Joomla中的SQL查询有问题,我的代码如下所示:

这将从模块中获取参数:

$variable = $params->get( 'variable', '' );
当我回显
$variable
时,我得到结果:1

查询的有效部分:

$db->setQuery("SELECT * FROM #__table AS t WHERE (t.id NOT LIKE '%1%'
AND t.published = 1
但是当我尝试使用一个变量时,它不起作用。我如何正确地使用一个变量来代替手动输入的数字

提前感谢

试试这个:

$db->setQuery("SELECT * FROM #__table AS t WHERE (t.id NOT LIKE '%$variable%' 
AND t.published = 1 ");
这样做

$db->setQuery("SELECT * FROM #__table AS t WHERE (t.id NOT LIKE '%{$variable}%' AND t.published = 1)");
应该有用


假定这不会逃逸
$variable
的值,因此请确保您信任源

我想您已经找到了答案,但对于其他答案:

$db->setQuery("SELECT * FROM #__table AS t WHERE (t.id NOT LIKE '. $db->quote('\'%.1.%\'')AND t.published = 1

检查此处:

如何将变量传递给SQL语句?这是一个模块。。。变量是模块参数之一..当我回显此参数..我得到了正确的结果查看Joomla文档以编写数据库查询而不是编写本机SQL查询首先,我发现我遗漏了查询的结束括号。其次是int类型的id字段?如果您echo/var_dump查询字符串,它看起来是否正确id是:int(11)--->string(1)“7”7是variable的id您可以通过打印检查查询字符串(发送到$db->query())是否与其中的变量正确匹配,还可以打印从函数$db->getErrorMsg()获得的内容吗