简体   繁体   中英

php mysql query - Document is empty when adding more fields

I have this mysql query which runs fine:

$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.

You're using UNION so both SELECT queries must have the exact same number of columns. 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.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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