【问题标题】:Insightly PHP API深入了解 PHP API
【发布时间】:2015-10-30 16:25:15
【问题描述】:

我正在使用https://github.com/Insightly/insightly-php 并且在将简单变量传递给其中的方法时遇到问题:

require("insightly.php");
$i = new Insightly('my-base64-encoded-api-key');

你知道为什么getContacts() 在这里似乎看不到变量$lastname 吗?

例子:

$lastname = $_GET["lastname"];
$contacts = $i->getContacts(array("filters" => array('LAST_NAME=\'$lastname\'')));

如果我在数组中硬编码一个名称,例如:

$contacts = $i-getContacts(array("filters" => array('LAST_NAME=\'Smith\'')));

它接受它并返回结果,

但是对于变量$lastname,它什么也不返回——而且没有错误,所以它一定看不到它。 - 这可能是我的语法错误,但我会感谢任何人指出我正确的方向:)

【问题讨论】:

  • 尝试使用引号 ("") 而不是撇号。这可能是问题所在,因为 PHP 从字面上解释撇号中的任何内容。见:stackoverflow.com/questions/3446216/…
  • 另外,打开错误报告,因为这些行会产生错误。
  • @vascowhite 除了$i-getContacts 之外还有什么错误,我认为这只是一个错字?
  • @andrewtweber array('LAST_NAME=\'$lastname\'') 不是有效的语法吗?
  • 再一次,也许是3v4l.org/qBlD2。我的错。没有处理\的

标签: php insightly


【解决方案1】:

因为您在设置数组时使用了撇号,PHP 会将其解释为文字。
因此,数组将读取:

Array ( [filters] => Array ( [0] => LAST_NAME='$lastname' ) )

$contacts 应该这样定义:

$contacts = $i->getContacts(array("filters" => array("LAST_NAME=$lastname")));

更多信息请参见this S.O. thread

【讨论】:

  • 我试过这个语法:$contacts = $i->getContacts(array("filters" => array("LAST_NAME=$lastname")));并得到:400 Bad Request 由于语法错误,服务器无法理解请求
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-25
  • 1970-01-01
  • 2013-11-22
  • 2016-01-18
  • 1970-01-01
相关资源
最近更新 更多