Php Can';不能使查询与变量一起工作
我有这个疑问Php Can';不能使查询与变量一起工作,php,sql,joomla,Php,Sql,Joomla,我有这个疑问 AND i.state = 1 AND i.language = "'.$mylang.'" AND i.access IN ('.implode(',', $user->getAuthorisedViewLevels()).') 我应该只获取当前语言的内容)奇怪的是,使用php变量$mylang它不起作用(编写它),我获取了内容。 我检查了$mylang的结果,并将其=发送给它 有什么线索吗? 谢谢。我不确定WHERE中的1=1子类,但忽略了它 试着这样做: $db =
AND i.state = 1
AND i.language = "'.$mylang.'"
AND i.access IN ('.implode(',', $user->getAuthorisedViewLevels()).')
我应该只获取当前语言的内容)奇怪的是,使用php变量$mylang它不起作用(编写它),我获取了内容。
我检查了$mylang的结果,并将其=发送给它
有什么线索吗?
谢谢。我不确定WHERE中的1=1子类,但忽略了它 试着这样做:
$db = JFactory::getDBO();
$query = $db->query(true);
$query->select('i.*')
->from($db->quteName('#__content'))
->where($db->quoteName('i.state') . ' = 1')
->where($db->quoteName('i.language') .' = ' $db->quote($mylanguage))
->where($db->quoteName('i.access') . ' IN (' . impode(',',$user->getAuthorisedViewLevels()) . ')' )
...
;
$db->set($query);
....
此外,如果查询不起作用,最好执行
echo$query->dump()
查看呈现的查询,如果打开调试器,您也可以查看查询。发布完整的查询代码。Pl检查所有变量的值,然后传递到query…。从MySQL文档:启用了ANSI\u QUOTES SQL模式,字符串文字只能在单引号内引用,因为双引号内引用的字符串被解释为标识符。
当您在字符串内时,不必使用
来压缩字符串。如果您在Joomla,您应该使用Joomla查询构建API。现在,即使您将“”去掉,因为@Diamondo2表示您正在查找语言字段设置为“%$lang”的行。。。。您只需要$mylang,但应该使用quoting,所以如果您有一个Joomla数据库对象$db,您需要$db->quote($mylang);