MySql查询在mysql中工作,但在php中留下一个空字段

时间:2013-12-19 14:28:35

标签: php mysqli

我在mysql中运行此查询:

SELECT *
FROM ROOM_TYPE RT
LEFT JOIN RENT_CONTRACT RC ON RT.room_type_id = RC.room_type_id
WHERE RT.homestead_id = 20;

在mysql中,它运行完美,我需要的结果。当我在PHP中运行它时,它给了我除了RT.room_type_id之外的所有内容,这些内容作为null返回给我。

当我将查询更改为只给我那个字段时,我仍然在php中得到null。知道为什么吗?

SELECT RT.room_type_id
FROM ROOM_TYPE RT
LEFT JOIN RENT_CONTRACT RC ON RT.room_type_id = RC.room_type_id
WHERE RT.homestead_id = 20;

我的Php,我遗漏了其他项目以显示问题。

global $con;    
$qry    =   "SELECT RT.room_type_id FROM ROOM_TYPE RT LEFT JOIN RENT_CONTRACT RC ON RT.room_type_id = RC.room_type_id WHERE RT.homestead_id = 20";
$result =   mysqli_query($con,$qry);
return mysqli_fetch_assoc($result);

1 个答案:

答案 0 :(得分:0)

您的测试查询:

SELECT RT.room_type_id
FROM ROOM_TYPE RT
LEFT JOIN RENT_CONTRACT RC ON RT.room_type_id = RC.room_type_id
WHERE RT.homestead_id = 20;

相当于这个简化的:

SELECT RT.room_type_id
FROM ROOM_TYPE RT
WHERE RT.homestead_id = 20;

如果RT-> RC匹配不是一对一的,则除了原点之外,可能会多次出现RT行。但是不同的值集应该是相同的。

因此,对于调试,也许您可​​以尝试在mysql和php中运行简化查询,看看会发生什么。当你通过mysql和php运行时,你在同一个数据库上运行吗?