这是我在db:
中的选择代码$q = $this->db->like('Autor1' or 'Autor2' or 'Autor3' or 'Autor4', $vyraz)
->where('stav', 1)
->order_by('id', 'desc')
->limit($limit)
->offset($offset)
->get('knihy');
return $q->result();
$vyraz = "Zuzana Šidlíková";
错误是:
NastalachibabaatabĂzy
错误号码:1054
'where子句'中的未知列'1'
SELECT * FROM (\
knihy`)WHERE`stav` = 1 AND`1` LIKE'%ZuzanaĹidlĂkovĂ%'ORDER BY`id`desc LIMIT 9文件名:C:\ wamp \ www \ artbooks \ system \ database \ DB_driver.php
行号:330
你能帮我解决这个问题吗?
答案 0 :(得分:1)
您尝试做的事情的语法错误,但技术上仍然有效,因为:
'Autor1' or 'Autor2' or 'Autor3' or 'Autor4'
...实际上是一个有效的PHP表达式,其求值为TRUE
(因为所有非空字符串都是“真实的”),当转换为字符串或echo
时,它出现为{ {1}},因此DB类希望匹配名为“1”的列。
1
无论如何,这就是你需要的:
function like($arg1, $arg2)
{
return "WHERE $arg1 LIKE '%$arg2%'";
}
$vyraz = 'Zuzana Šidlíková';
echo like('Autor1' or 'Autor2' or 'Autor3' or 'Autor4', $vyraz);
// Output: WHERE 1 LIKE '%Zuzana Šidlíková%'