2016-03-08 73 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

相关问题