Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP我的查询在phpmyadmin中工作,但在我的代码中不工作_Php_Mysql_Vtiger - Fatal编程技术网

PHP我的查询在phpmyadmin中工作,但在我的代码中不工作

PHP我的查询在phpmyadmin中工作,但在我的代码中不工作,php,mysql,vtiger,Php,Mysql,Vtiger,因此,我使用此查询获取有关更改的详细信息并将其发送给邮件。它以前在第二个内部连接丢失时工作,但无论我做什么,我都无法使它工作。在phpmyadmin中它工作,我得到我的行,但在我的php中我得到0行。我很想知道我做错了什么 $query = "SELECT * FROM vtiger_modtracker_detail WHERE id = (SELECT vtiger_modtracker_detail.id FROM vtiger_modtracker_detail " . "INNER J

因此,我使用此查询获取有关更改的详细信息并将其发送给邮件。它以前在第二个内部连接丢失时工作,但无论我做什么,我都无法使它工作。在phpmyadmin中它工作,我得到我的行,但在我的php中我得到0行。我很想知道我做错了什么

$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)";
这可能是因为我在内部联接中比较日期

编辑2:pquery()处缺少$,但这无法修复它。我已经找到了一个解决方法,因此我不再需要使用此查询。但是如果有人知道这个问题出了什么问题,我很想知道


编辑3:解决方案不起作用,仍需要对此问题的答案。

在查询中的每个名称之前添加

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

那么它在phpmyadmin和第二个内部联接中工作吗?也许这是个愚蠢的问题,但是你的表中有数据吗?你能告诉我什么是
$res=$adb->pquery($query,array(id[1])
应该是,特别是id[1]?您的代码中是否确实有
$id[1]
?您的
$adb
是什么类型的对象?@Timothy Yes数据确实存在,可以在phpmyadmin中查询。@Davis$adb是数据库连接类,pquery是准备查询(用第二个参数填充问号)并运行execute函数的函数$id[1]是我从$entity获取的id。该值的格式为module_idxentity_id。我使用x上的explode来获取实体id。我已通过将$id[1]打印到文件来检查查询前后的值。如果我在phpmyadmin中的查询中使用相同的id,我会得到结果。如果通过db连接对象仅执行内部查询(从部分选择vtiger\u modtracker\u basic.id),它是否工作?还是更简单的?您是否尝试过一个不绑定任何变量的查询,一个超级简单的查询?那么,如果您添加了一个绑定,它还能工作吗?也许您的“db连接类”有问题(但可能没有,因为您无疑在其他地方使用它)。我找到了一个解决方法,所以在本例中我不会使用此查询,但我会使用更多引号。我的解决方法失败了,所以我尝试了您的解决方案,但它没有改变任何内容,也没有与`一起工作。您是否将所有sql名称(表、字段等)都放在了``中?如果是这样,如果您在phpmyadmin中复制/粘贴您的PHP sql查询,它执行时是否没有错误?另外,您可以从该数据库中的该客户机执行任何其他查询吗?您不能在表名和列名周围使用单引号/撇号——您是指反勾号吗?您的第二条评论表明这就是您的意思(在这种情况下,您可能希望编辑您的答案以保持清晰,即使这对提问者不起作用)。@Bonatti是的,我确实替换了所有内容,并且在phpmyadmin中它起作用,但在代码中仍然不起作用。我还可以执行其他查询。如果这不可能,crm将无法工作,因为它从db获得了很多东西。