PDO :: execute()上的数组到字符串转换

时间:2011-03-04 20:29:48

标签: php database pdo

我收到此错误

  

注意:第54行的coolFile中的数组到字符串转换

现在,第54行是以下

$result = $stmt->execute($par);

其中$par是:

$par = array (
            'eNo' => $no,
            'eType' => $type,
            'eString' => $string,
            'eFile' => $file,
            'eLine' => $line,
            'eContext' => $context,
            'eTime' => time(),
            'eIp' => $_SERVER['REMOTE_ADDR']
        );

$stmt$stmt = $pdo->prepare($sql);$pdoPDO类的实例。

我感到有点困惑:PHP是否警告我必须将数组转换为字符串? 为什么他不能在希望将数组作为参数传递的函数中接受这样的数组?

2 个答案:

答案 0 :(得分:1)

直接形成PHP set_error_handler页面,处理函数的签名是:

handler ( int $errno , string $errstr [, string $errfile [, int $errline [, array $errcontext ]]] )

如您所见,PHP将向您发送一个上下文数组。如果您不需要它,请将其删除或找到使其成为标量值的方法。

errcontext

The fifth parameter is optional, errcontext, which is an array that points to the active symbol table at the point the error occurred. In other words, errcontext will contain an array of every variable that existed in the scope the error was triggered in. User error handler must not modify error context.

答案 1 :(得分:0)

基本上似乎set_error_handler()的第五个参数是根据手册的数组:

  

第五个参数是可选的errcontext,它是一个数组,指向发生错误时的活动符号表。换句话说,errcontext将包含触发错误的作用域中存在的每个变量的数组。用户错误处理程序不得修改错误上下文。

所以问题不是主阵列,而是主阵列内的数组。 PS:我发誓我不知道,我很确定错误上下文是一个字符串。