我维护一个遗留系统(使用 PHP 和 MySQL)。从数据库搜索内容时遇到问题。例如,我有一个要搜索的查询:
$query = "SELECT * FROM comments WHERE comment_content LIKE '%"$term"%'";
我使用UTF-8,MySQL的InnoDB类型,当$term的长度是8067(日语)字符(数字也像文本字符)时,没有问题。当$term的长度为8068个字符时,无法搜索,这是我的问题。
- 全文搜索使用 PHP 和 MySQL 时的最大长度是多少?
- 如何解决我的问题?
感谢您的帮助。谢谢!
最佳答案
呃...实际代码中是这样的。
检查$term len()函数的长度
len($term) if $term is >8067 then do stuff
迭代 $term 中 8067 个字符的多次舍入
$charachterincrement=8067 $searchtermcount = roundup(len($term)/8067,0) $searchterm = "comment_content LIKE" & left($term,$charachterincrement)
$i=1
do while $i <= $searchtermcount $i = $i+1 $charachterincrement=$charachterincrement+8067
创建一个新的
$searchterm
来存放您的“like”语句。对于每次迭代,将其添加到您的
$searchterm
$searchterm = $searchterm & " AND comment_content LIKE '%" & mid($term, $charachterincrement, 8067) & "'%"
关闭循环
loop
关闭 if
end if $query = "SELECT * FROM comments WHERE $searchterm;
这将创建一个 SQL 语句,该语句需要搜索查询中初始 $term 的所有部分。但它不会考虑顺序,它只会检查帖子中是否存在每个 8067 字符串。
关于php - 使用 PHP 和 MySQL 时如何搜索比常规内容更长的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26499602/