簡體   English   中英

SQL在PHP中失敗,但可在命令行mysql中使用

[英]SQL fails in PHP but works in command line mysql

SQL代碼:

SELECT id, album_date AS timestamp, CONCAT((SELECT detail_value
FROM people_db.user_details_tbl WHERE detail_field = 'first_name' AND user_id = pictures_db.albums.owner), ' uploaded pictures!') AS title_html 
FROM pictures_db.albums 
WHERE id IN 
(SELECT DISTINCT(album_id) 
FROM pictures_db.album_pics 
WHERE pic_id IN 
    (SELECT DISTINCT(picture_id) 
    FROM pictures_db.picture_access_tbl 
    WHERE grantee_group_id IN 
        (SELECT group_id 
        FROM people_db.group_membership_tbl
        WHERE member_id = '2'
        )
     )
);

PHP代碼:

$albums_sql = mysql_query("SELECT id, album_date AS timestamp, CONCAT((SELECT detail_value 
    FROM people_db.user_details_tbl 
    WHERE detail_field = 'first_name' AND user_id = pictures_db.albums.owner), ' uploaded pictures!') AS title_html 
    FROM pictures_db.albums 
    WHERE id IN (
          SELECT DISTINCT(album_id) 
          FROM pictures_db.album_pics 
          WHERE pic_id IN (
              SELECT DISTINCT(picture_id) 
              FROM pictures_db.picture_access_tbl 
              WHERE grantee_group_id IN (
                  SELECT group_id 
                  FROM people_db.group_membership_tbl 
                  WHERE member_id = '2'
                  )
               )
             )") or die(mysql_error());

運行PHP時,錯誤為:表'pictures_db.albums'不存在

我嘗試以同一用戶身份執行,重新注冊了所有權限,甚至刷新了特權。 在shell中工作,而不在PHP中工作。 有任何想法嗎?

錯誤消息非常清楚:MySQL查看數據庫Pictures_db,但看不到表相冊。

這可能是由於權限所致,但您似乎已經對其進行了徹底檢查。

另一個可能的原因是,您在PHP中使用的連接字符串指向的數據庫實例與您在命令行中使用的數據庫實例不同。 也許連接字符串仍然指向其他環境,例如DEV,但是您處於質量檢查中,還是指向數據庫的舊測試版本?

在運行查詢之前,您是否調用mysql_select_db()

mysql_select_db('pictures_db');

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM