![](/img/trans.png)
[英]using mysql LOAD statment in PHP fails, but doing it via command line works
[英]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.