简体   繁体   English

PHP MySQL查询-添加更多字段时文档为空

[英]php mysql query - Document is empty when adding more fields

I have this mysql query which runs fine: 我有这个运行良好的mysql查询:

$query = "SELECT
          USER.USER_ID, NAME, SURNAME, EMAIL, STATUS, PHOTO
          FROM FRIENDLIST, USER, USER_PROFILE
          WHERE FRIENDLIST.FRIEND_ID = ANY (
              SELECT FRIEND_ID FROM FRIENDLIST WHERE USER_ID=".$userID."
          )
          AND APPROVED='YES'
          AND USER.USER_ID=FRIENDLIST.FRIEND_ID
          AND USER.USER_ID=USER_PROFILE.USER_ID
          UNION
          SELECT
          USER.USER_ID, NAME, SURNAME, EMAIL, STATUS, PHOTO FROM FRIENDLIST, USER, USER_PROFILE
          WHERE FRIENDLIST.FRIEND_ID = " . $userID . "
          AND APPROVED = 'YES'
          AND USER.USER_ID=FRIENDLIST.USER_ID
          AND USER.USER_ID=USER_PROFILE.USER_ID";

When I add a few more fields in the query I get a "Document is empty" error. 当我在查询中添加更多字段时,出现“文档为空”错误。

$query = "SELECT
          USER.USER_ID, NAME, SURNAME, EMAIL, STATUS, PHOTO, gender, cposition, rinterest, about
          FROM FRIENDLIST, USER, USER_PROFILE
          WHERE FRIENDLIST.FRIEND_ID = ANY (
              SELECT FRIEND_ID FROM FRIENDLIST WHERE USER_ID=" . $userID . "
          )
          AND APPROVED='YES'
          AND USER.USER_ID=FRIENDLIST.FRIEND_ID
          AND USER.USER_ID=USER_PROFILE.USER_ID
          UNION
          SELECT
          USER.USER_ID, NAME, SURNAME, EMAIL, STATUS, PHOTO
          FROM FRIENDLIST, USER, USER_PROFILE
          WHERE FRIENDLIST.FRIEND_ID = ".$userID."
          AND APPROVED='YES'
          AND USER.USER_ID=FRIENDLIST.USER_ID
          AND USER.USER_ID=USER_PROFILE.USER_ID";

The new fields belong to USER_PROFILE table. 新字段属于USER_PROFILE表。

You're using UNION so both SELECT queries must have the exact same number of columns. 您使用的是UNION因此两个SELECT查询必须具有完全相同的列数。 Otherwise your query will fail and that could give errors like the one you see. 否则,您的查询将失败,并且可能会产生类似于您看到的错误。 This error message probably also indicates that the query result is not checked for errors or failures. 该错误消息还可能表明未检查查询结果是否有错误或失败。

This would be much easier to spot if the code were formatted properly. 如果代码格式正确,这将更容易发现。 It is allowed (and advised) to use enters inside a SQL query. 允许(建议)在SQL查询中使用Enter。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM