【发布时间】:2012-09-01 14:04:16
【问题描述】:
SELECT `id`, `name_person`, `person_content`, `datetime`
FROM (`achievers_unverified`)
WHERE ` name_person LIKE '%ved%'
OR ` person_content LIKE '%ved%' LIMIT 10
这是我尝试使用的 sql 查询,其中 ved 是搜索词。
我遇到了 1064 错误。
生成它的codeigniter代码是。
$this->db->select($select)
->from($table)
->like($str[1], $query, 'both')
->or_like($str[2], $query, 'both')
->limit($offset+10, $offset);
这是错误:
您的 SQL 语法有错误;检查手册 对应于您的 MySQL 服务器版本,以便使用正确的语法 在第 3 行的 'person_content LIKE '%ved%' LIMIT 10' 附近。
$str = explode(",", $select);
where $select = id, name_person, person_content, datetime
【问题讨论】:
-
$str[2]和$str[1]到底是什么? -
WHERE和OR之后的随机刻度是多少? -
我用您的代码对此进行了测试,但没有得到这个结果,我得到了正确的结果。您是否 100% 确定此代码是导致问题的原因,并且您是否尝试过对值进行硬编码而不是使用变量?您使用的是哪个版本的 Codeigntier?
-
如果您分析 sql 查询,那么您可以看到 ' 在靠近 like 的字段名称的末尾丢失。我在 phpmyadmin 中插入了它,它起作用了。但关键是为什么 codeigniter 会生成这样的查询
-
我了解,我使用 CI 进行了测试,您的代码对我来说运行良好并生成了正确的查询。
标签: php sql codeigniter