gpt4 book ai didi

php - PHP 中的通配符查询在 SQL 中呈现,而不是在 PHP 中呈现

转载 作者:行者123 更新时间:2023-11-30 22:34:02 26 4
gpt4 key购买 nike

我已经用 PHP 处理这个查询一两天了。我正在使用 PHP 5.4 MySQL 5.6。下面的查询在 SQL 中运行良好,但在 PHP 中不起作用。我在 google 上搜索了一个答案,并在 PHP 和 SQL 中搜索了通配符答案的堆栈溢出。对于为什么它不起作用,目前这真的是我身边的一个棘手问题。

$search_string = preg_replace("/[^A-Za-z0-9]/", " ", $_POST['query']);
$search_string = mysql_real_escape_string($search_string);

$query = 'SELECT * FROM population WHERE location LIKE "'.$search_string.'%"';

如果您需要更多信息,请告诉我 - 如果有帮助,我将 phpmyadmin 用于 SQL。

谢谢

编辑:我正在尝试从城市数据库中进行通配符搜索,因此键入“Al”的前 2 个字符应该生成一个自动完成,其中所有城市都以“Al”开头。

如果我在前面包含两个通配符 %'.$search_string.'%"'; 它将按预期自动完成(找到所有匹配的字符,它们可能在字符串中),但如果我删除第一个 %它返回“无结果”。

更新:

$query = 'SELECT * FROM population WHERE location LIKE "%'.$search_string.'"';

返回以最后一个字符开头的所有城市名称。

例如:键入“Al”会返回“central、normal 等”。但是如果我把我的通配符放在后面,它就好像 PHP 没有解析查询一样。

最佳答案

所以,如果没有更多信息,只是好奇和难以回答,但您尝试过吗:

WHERE LOWER(location) LIKE LOWER('".$string."%')

给我更多关于可能通过该查询传递的字符串类型的信息...我相信它可能正在使用额外的通配符,因为位置以正确的大小写存储并且字符串是小写或大写...

关于php - PHP 中的通配符查询在 SQL 中呈现,而不是在 PHP 中呈现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33049647/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com