Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Can';不能使查询与变量一起工作_Php_Sql_Joomla - Fatal编程技术网

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);