php - 为什么我在 PHP App 和 PhpMyAdmin 上得到不同的查询结果?进行严格/正常搜索的正确方法是什么?

标签 php mysql sql database

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

我的表看起来像这样:

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

id 为 INT,title 为 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 应用程序的结果 (nothing)

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

请求 B(非严格):

SELECT * FROM table_one WHERE title LIKE '%title 01%'
  • PhpMyAdmin 的结果 1 | title 01
  • PHP 应用程序的结果 all values from 0 <=10 (does not display 11)

如果我请求标题0,它应该显示所有以标题0开头的标题,例如01 02 03 04等<= 09(我认为这个命令是“%title 01”,但它不起作用)

我的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 应用程序上无法正常运行。

我错过了什么?

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

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

最佳答案

修复:

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

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

相关文章:

javascript - 如何在点击按钮并执行PHP代码后自动打开URL

php - 覆盖 PHP 中的静态方法

php - 迁移的默认数组值

javascript - 如何(SELECT *)node.js 中的两个 mysql 表(express)

mysql - mysql 与 sql-92 兼容吗?

mysql - Sql 查询从 csv 数据库获取票价

php - sql连接需要进一步的帮助

php - 无法在sql语句中使用隐藏字段

php - MongoDB AND & OR 条件中的复杂语句

java - JDBI中如何动态绑定(bind)一个表名