如何正确查询vTiger CRM API
How to make right query to vTiger CRM API
我收到一个 sql 查询:
$vtiger->query('*', 'Products', "(productname LIKE '%$name%' OR description LIKE '%$name%') AND cf_1007 = 'Ready'", null, 50, null);
(使用 https://github.com/sumocoders/vtiger-api)。它有一个 WHERE 子句。如何做对? (当前查询抛出异常)。我需要获取产品名称或描述包含 %name% 以及单元格 cf_1007 = "Ready".
的所有行
UPD:来自vTiger的回答API(忘了在这里添加)
{"success":false,"error":{"code":"QUERY_SYNTAX_ERROR","message":"Syntax Error on line 1: token '(' Unexpected PARENOPEN((), expected one of: COLUMNNAME"}}
我对这个问题进行了更深入的研究,发现了以下内容:
您正在使用的 API 向 VTIGER 网络服务发送请求。 API 没有问题,您的用法似乎没问题。所以,下一站将是检查网络服务文档。
然后我遇到了 this page 并发现了以下内容:
SELECT * | <column_list> | <count(*)> FROM <object> [WHERE
<conditionals>] [ORDER BY <column_list>] [LIMIT [<m>, ] <n>]
注意部分说明:
<condition_operations>
or <in_clauses>
or <like_clauses>
separated by
‘and’ or ‘or’ operators these are processed from left to right. The
are no grouping that is bracket operators.
所以好像不能使用(field1=val1 OR field2=val2) AND field3=val3
格式。你应该使用 field1=val1 OR field2=val AND field3=val3
.
由于第一个 (
,存在语法错误。
尝试删除它,更改
(A OR B) AND C
对于
A AND C OR B AND C
我收到一个 sql 查询:
$vtiger->query('*', 'Products', "(productname LIKE '%$name%' OR description LIKE '%$name%') AND cf_1007 = 'Ready'", null, 50, null);
(使用 https://github.com/sumocoders/vtiger-api)。它有一个 WHERE 子句。如何做对? (当前查询抛出异常)。我需要获取产品名称或描述包含 %name% 以及单元格 cf_1007 = "Ready".
的所有行UPD:来自vTiger的回答API(忘了在这里添加)
{"success":false,"error":{"code":"QUERY_SYNTAX_ERROR","message":"Syntax Error on line 1: token '(' Unexpected PARENOPEN((), expected one of: COLUMNNAME"}}
我对这个问题进行了更深入的研究,发现了以下内容: 您正在使用的 API 向 VTIGER 网络服务发送请求。 API 没有问题,您的用法似乎没问题。所以,下一站将是检查网络服务文档。
然后我遇到了 this page 并发现了以下内容:
SELECT * | <column_list> | <count(*)> FROM <object> [WHERE
<conditionals>] [ORDER BY <column_list>] [LIMIT [<m>, ] <n>]
注意部分说明:
<condition_operations>
or<in_clauses>
or<like_clauses>
separated by ‘and’ or ‘or’ operators these are processed from left to right. The are no grouping that is bracket operators.
所以好像不能使用(field1=val1 OR field2=val2) AND field3=val3
格式。你应该使用 field1=val1 OR field2=val AND field3=val3
.
由于第一个 (
,存在语法错误。
尝试删除它,更改
(A OR B) AND C
对于
A AND C OR B AND C