【问题标题】:error: Array to string conversion in错误:数组到字符串的转换
【发布时间】:2014-07-12 02:27:17
【问题描述】:

我正在尝试使用此代码来提取一些值:

主要

// refhls : array 
foreach($refhls as $refhl){
    $abc = $this->getArrayIntervenants($refhl);
}

功能

public function getArrayIntervenants($refhl){
    $requete = $this->bdd->bd->prepare('SELECT intervenant FROM detailsfiche WHERE ref_hl = :ref_hl');
    $requete->bindValue(':ref_hl', $refhl, PDO::PARAM_INT);
    $requete->execute(); // -----MARKED LINE-----
    return $requete->fetchAll(PDO::FETCH_ASSOC);
}

这样做我在标记的行上收到此错误消息:

注意:file.php 中第 138 行的数组到字符串的转换

请问我该如何解决?

【问题讨论】:

  • 你想插入数组中的所有值吗?或任何单个值>
  • $refhl 的值是多少?如果它是一个数组,那么我相信你有一组不相等的键值。
  • @aowie1,这是一个字符串
  • @FerozAkbar,我想将请求的所有输出值插入到数组中。

标签: php zend-framework2


【解决方案1】:

由于你的变量 $refhl 是一个数组,你不能直接绑定它。在你的函数的开头调用一个 var_dump 会帮助你。

var_dump($refhl);

然后你可以用这样的东西替换你的行:

$requete->bindValue(':ref_hl', $refhl['myArrayKey'], PDO::PARAM_INT);

【讨论】:

  • 它不是一个数组,它只是一个变量。 php 是否将参数作为变量?
  • 你确定不是数组吗?你在你的函数中尝试过var_dump($refhl) 吗?如果是只有一个元素的数组,可以试试$requete->bindValue(':ref_hl', current($refhl), PDO::PARAM_INT);
【解决方案2】:

$refhl 是一个数组。您不能将数组用作字符串。

尝试检查数组中的字符串

isset($refh1[$positionKey]) { }

如果该值存在,则使用它!

【讨论】:

  • 它不是一个数组,它只是一个变量。 php 是否将参数作为变量?
  • 是的,确实如此。抱歉,迟到了,但您可以将参数用作变量,也可以将变量用作类方法,php 5.3 plus 正在改进。
猜你喜欢
  • 2015-02-26
  • 2012-07-15
  • 2017-12-02
  • 2013-06-23
  • 2013-08-24
  • 1970-01-01
  • 2019-05-01
  • 2016-09-07
相关资源
最近更新 更多