Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/83.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 Mysql与like和/或like之间的问题_Php_Sql_Codeigniter - Fatal编程技术网

Php Mysql与like和/或like之间的问题

Php Mysql与like和/或like之间的问题,php,sql,codeigniter,Php,Sql,Codeigniter,这是我试图使用的sql查询,其中ved是搜索词 我发现一个1064错误 生成它的codeigniter代码是 SELECT `id`, `name_person`, `person_content`, `datetime` FROM (`achievers_unverified`) WHERE ` name_person LIKE '%ved%' OR ` person_content LIKE '%ved%' LIMIT 10 这就是错误: 您的SQL语法有错误;检查手册 对应于

这是我试图使用的sql查询,其中ved是搜索词

我发现一个1064错误

生成它的codeigniter代码是

SELECT `id`, `name_person`, `person_content`, `datetime` 
FROM (`achievers_unverified`) 
WHERE ` name_person LIKE '%ved%' 
   OR ` person_content LIKE '%ved%' LIMIT 10
这就是错误:

您的SQL语法有错误;检查手册 对应于您的MySQL服务器版本,以便使用正确的语法 第3行的“人员内容(如“%ved%”限制10”附近


找到了解决方案使用trim($str[0])和trim($str[1])sapce造成了问题。

$str[2]
$str[1]
之后的随机记号是什么?我用你的代码测试了这个结果,但没有得到正确的结果。您是否100%确定这段代码是产生问题的原因,并且您是否尝试过对值进行编码而不是使用变量?您使用的是什么版本的CodeIgniter?如果您分析sql查询,那么您可以看到“名称”字段末尾缺少类似的内容。我在phpmyadmin中插入了它,它成功了。但关键是codeigniter是如何生成这样的查询的我知道,我用CI进行了测试,您的代码对我来说运行良好,生成了正确的查询。啊哈,您是正确的!当我测试您的查询时,我使用的是DataMapperORM,它显然会自动处理这个问题,当我使用straight ActiveRecord尝试它时,它会导致相同的错误。对您的怀疑和未能生成准确的测试用例表示歉意。因此,您的字段名不正确,因为它们有额外的空格字符。
$this->db->select($select)
            ->from($table)
            ->like($str[1], $query, 'both')
            ->or_like($str[2], $query, 'both')
            ->limit($offset+10, $offset);
$str = explode(",", $select);
where $select = id, name_person, person_content, datetime