【发布时间】:2018-02-24 03:17:54
【问题描述】:
我已经尝试了多种方法,但我有一个客户对这个主题非常特别,我不确定如何完全按照他的意愿进行。
我们有一个名为 Articles 的控制器。
要查找文章,我们使用路径 /articles/year/month/date/article-title-as-is-in-database-but-highphenated
控制器只获取数据的最后一部分,用空格替换连字符,并在文章表中查找与字符串匹配的 article_title。
现在他有一些带有冒号和某些其他特殊字符的文章。
所以我的问题是,如果我们在数据库中有“This:is my article name”,他的首选链接将是“/this-is-my-article-name/”.. 好吧,查询不返回任何结果因为我们没有用任何东西替换冒号.. 我们如何获取结果文章?!
我尝试了类似的东西:
$this->db->select('(SELECT * FROM articles WHERE REPLACE(REPLACE(REPLACE(articles.article_title, "-", ""), ":", ""),"!", "") LIKE "%'.$string.'%")', FALSE);
$query = $this->db->get();
return $query->row_array();
然而这并没有奏效——它只是导致了这个:
错误号:1241
操作数应包含 1 列
SELECT (SELECT * FROM 文章 WHERE 替换(替换(替换(articles.article_title,“-”,“”),“:”,“”), "!", "") LIKE "%Computer Build of the Month : April 2015%")
文件名:C:\mstsage\system\database\DB_driver.php
行号:331
感谢任何帮助我解决这个问题的天才!
【问题讨论】:
-
为什么不使用 url 友好段向您的数据库添加一个单独的字段?
-
有点离题,但我建议在 URL 中添加帖子 ID,以防两篇文章可能同名
标签: php mysql codeigniter