簡體   English   中英

mysql_num_rows返回0,但是phpMyAdmin中的相同查詢返回結果

[英]mysql_num_rows returns 0, but the same query in phpMyAdmin return results

我們已經在一個嚴重的問題上工作了幾個小時。

我們有以下代碼:

mysql_connect("localhost","xxx","xxx") or die(mysql_error());
mysql_select_db("xxxe");

$q = "SELECT m.id, m.expired_date, u.email
     FROM jos_osemsc_member m, jos_osemsc_orders o, jos_users u
    WHERE o.order_id  = $orderID
   AND m.member_id = o.user_id
   AND u.id  = o.user_id";

$res = mysql_query($q);

if (!$res) {
  mail('xxx@xxx.com','test',mysql_error());
}

mail("xxx@xxx.com", "count",  mysql_num_rows($res));

我們收到“計數”郵件,但mysql_num_rows的結果為“ 0”。 如果我們通過電子郵件發送查詢($ q),並在phpMyAdmin中執行查詢,那么它將起作用,並且會得到一行結果...

有任何想法嗎 ?

感謝您的幫助,我們將非常感謝

用戶xxx可能比您用於PMA的用戶具有更多的限制性權限。

嘗試重新措詞您的查詢。 我發現LEFT JOIN容易理解和處理。

SELECT m.id, m.expired_date, u.email
FROM jos_osemsc_orders AS o 
        LEFT JOIN jos_osemsc_member AS m ON (m.member_id = o.user_id) 
        LEFT JOIN jos_users AS u ON (u.id = o.user_id)
WHERE o.order_id  = $orderID;

如果這不起作用,請將查詢減少到僅orders表,並確保獲得結果。 如果可行,請添加表格,等等。

另外,我可以看到如果訂單是由用戶而非成員下達的,哪里會有問題,反之亦然。 但是,左聯接樣式查詢將解決該問題。 另外,我在查詢中編輯了表的順序以使其更有意義。

暫無
暫無

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

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