我要求在PhpMyAdmin上运行良好,但在我的PHP应用程序上却没有显示相同的结果。

我的表看起来像这样:

 table_one
id| title
1 | title 01
2 | title 02
3 | title 03
etc.. <= 11


id为INT且标题为VARCHAR(50)

请求A(严格):

SELECT * FROM table_one WHERE title LIKE 'title 01'




SELECT * FROM table_one WHERE title = 'title 01'



PhpMyAdmin 1 | title 01上的结果
PHP App (nothing)上的结果


它应该只显示标题01的值,而不显示其他任何内容

要求B(非严格):

SELECT * FROM table_one WHERE title LIKE '%title 01%'



PhpMyAdmin 1 | title 01上的结果
PHP App all values from 0 <=10 (does not display 11)上的结果


如果我将请求标题0,则它应显示以标题0开头的所有标题,例如01 02 03 04等
我的PHP代码是这样的:

switch($Request){
    case 'A': $result = mysqli_query($con,"SELECT * FROM table_one WHERE title LIKE 'title 01'"); break;
    case 'B': $result = mysqli_query($con,"SELECT * FROM table_one WHERE title LIKE '%title 01%'"); break;
}
while($row = mysqli_fetch_array($result)) {
    for($i=0; $i<(count($row)/2); $i++)
    {
        echo " " . $row[$i] . " ";
    }
}


它在PhpMyAdmin上运行良好,但在我的PHP应用程序上无法正常运行。

我想念什么?

我需要某种严格/非严格的搜索:


在STRICT模式下,当我写标题01时,它应该仅显示标题为标题1的值,而不是完整表。
在非严格模式下(正常),当我编写标题01时,它应显示标题包含标题01的任何值

最佳答案

固定:

似乎当我将变量传递给标头时,它添加的是%20而不是空格,因此请求是错误的。
所以我通过添加(:space :)而不是空格并再次对其进行解析,在发送请求之前用实际的空格替换了所有(:space :)来修复了该问题。

关于php - 为什么我在PHP App和PhpMyAdmin上得到不同的查询结果?进行严格/正常搜索的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55443664/

10-13 04:45