php - MySQL 控制台中的查询结果与 PHP 的 mysql_query() 的结果不匹配

标签 php mysql

我的 MySQL 查询根据查询的提交方式返回不同的结果。当通过 MySQL 控制台提交查询结果时。

mysql> SELECT   `modx`.coverage_nation.id,
    -> `modx`.coverage_nation.name,
    -> `modx`.coverage_national_region.id,
    -> `modx`.coverage_national_region.name
    -> FROM             `modx`.coverage_nation_part
    -> RIGHT JOIN       `modx`.coverage_national_region ON (`modx`.coverage_nati
on_part.nation_regionID = `modx`.coverage_national_region.id)
    -> RIGHT JOIN       `modx`.coverage_nation ON (`modx`.coverage_nation_part.n
ationID = `modx`.coverage_nation.id)
    -> ORDER BY `modx`.coverage_nation.name ASC, `modx`.coverage_national_region
.name ASC;
+----+---------------+------+------+
| id | name          | id   | name |
+----+---------------+------+------+
|  3 | Canada        | NULL | NULL |
| 18 | Chad          | NULL | NULL |
| 17 | Germany       | NULL | NULL |
| 15 | Italy         | NULL | NULL |
|  2 | Mexico        | NULL | NULL |
| 19 | Nigeria       | NULL | NULL |
| 14 | Russia        | NULL | NULL |
| 16 | Spain         | NULL | NULL |
|  1 | United States | NULL | NULL |
+----+---------------+------+------+
9 rows in set (0.00 sec)

当使用 PHP 的 mysql_query 提交相同的查询时,它只返回一行。

$query .= "SELECT   `modx`.coverage_nation.id,
`modx`.coverage_nation.name,
`modx`.coverage_national_region.id,
`modx`.coverage_national_region.name
FROM        `modx`.coverage_nation_part
RIGHT JOIN  `modx`.coverage_national_region ON (`modx`.coverage_nation_part.nation_regionID = `modx`.coverage_national_region.id)
RIGHT JOIN  `modx`.coverage_nation ON (`modx`.coverage_nation_part.nationID = `modx`.coverage_nation.id)
ORDER BY `modx`.coverage_nation.name ASC, `modx`.coverage_national_region.name ASC;";

$resultSet = mysql_query($query) or die("query failed ".mysql_error());

while($row = mysql_fetch_array($resultSet,MYSQL_NUM)) {
    // handle each result here
}

仅返回加拿大。有人对我如何解决这个问题有任何想法吗?

最佳答案

您有多个名称为 idname 的字段。尝试将 SQL 的 SELECT 部分(在 PHP 代码中)更改为:

SELECT `modx`.coverage_nation.id,
`modx`.coverage_nation.name,
`modx`.coverage_national_region.id AS coverage_national_region_id,
`modx`.coverage_national_region.name AS coverage_national_region_name

或类似的东西,因此返回的字段具有不同的名称。

关于php - MySQL 控制台中的查询结果与 PHP 的 mysql_query() 的结果不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3753730/

相关文章:

php - 测试字符串是否可以是 boolean 值 PHP

php - Laravel 5.4 数据库 - 最大连接和套接字错误

php - 在 mySQL 列中存储随机大小的数组

php - 如何通过 PHP 从数据库中获取组中的总用户数

php - 如何定义 foreach 循环中的最后一个元素?

php - 了解 WordPress Hook 的调用方式

php - 取消设置变量组

php - 如何抓取搜索结果的id来自

mysql - 使用 TFDConnection 以编程方式设置 "Server"

php - 显示存储在 mysql blob 中的图像