2016-03-08 72 views
0

所以我使用這個查詢來獲取有關更改和郵件它的詳細信息。它曾經工作時,第二次內部連接失蹤,但我怎麼能不能使它與它一起工作。在phpmyadmin它的作品,我得到我的行,但在我的PHP我得到0行。我很想知道我在這裏做錯了什麼。PHP我的查詢是在phpmyadmin工作,但不是在我的代碼

$query = "SELECT * FROM vtiger_modtracker_detail WHERE id = (SELECT vtiger_modtracker_detail.id FROM vtiger_modtracker_detail " . 
"INNER JOIN vtiger_modtracker_basic ON vtiger_modtracker_basic.id = vtiger_modtracker_detail.id " . 
"INNER JOIN vtiger_crmentity ON vtiger_crmentity.modifiedtime = vtiger_modtracker_basic.changedon " . 
"WHERE vtiger_crmentity.crmid = ? ORDER BY vtiger_modtracker_detail.id DESC LIMIT 1);"; 

$res = $adb->pquery($query, array($id[1])); 
$row = $adb->num_rows($res); 

編輯:

我簡化了查詢一下,但什麼都沒有改變。

$query = "SELECT * FROM vtiger_modtracker_detail WHERE id = (SELECT vtiger_modtracker_basic.id FROM vtiger_modtracker_basic " . 
"INNER JOIN vtiger_crmentity ON vtiger_crmentity.modifiedtime = vtiger_modtracker_basic.changedon " . 
"WHERE vtiger_crmentity.crmid = 42 ORDER BY vtiger_modtracker_basic.id DESC LIMIT 1)"; 

這可能是因爲我比較INNER JOIN中的日期。

編輯2:缺少$在pquery()但這並沒有解決它。我找到了解決辦法,所以我不需要再使用這個查詢。但是如果有人知道我想知道的查詢有什麼問題。

編輯3:解決方法不起作用仍然需要對此的答案。

+0

所以它在phpMyAdmin工作與第二內加入?也許是一個愚蠢的問題,但是你的表中有數據嗎? – Timothy

+1

你能告訴我什麼'$ res = $ adb-> pquery($ query,array(id [1]));'應該是,特別是* id [1] *?你的代碼中是否實際上是'$ id [1]'?什麼類型的對象是你的'$ adb'? – Davis

+0

@Timothy是的,數據確實存在,可以在phpmyadmin查詢。 –

回答

0

查詢中的每個名字前添加'

SELECT 'vtiger_modtracker_detail.id' FROM 'etc', 'etc2' 
+0

thnx爲anwer。我已經找到了解決辦法,所以在這種情況下,我不會使用這個查詢,但生病將更多地使用引號。 –

+0

我的解決方法失敗了,所以我嘗試了你的解決方案,但它沒有改變任何事情,也沒有''工作。 –

+0

你把所有的sql名稱(表,字段等)放在'''中嗎?如果是這樣,如果你複製/粘貼你的php sql查詢在phpmyadmin中,它執行沒有錯誤?另外,你可以執行該數據庫中該客戶端的任何其他查詢嗎? – Bonatti

相關問題