Преобразование массива в строку в PDO :: execute () - PullRequest
1 голос
/ 04 марта 2011

Я получаю эту ошибку

Примечание: преобразование массива в строку в coolFile в строке 54

Теперь строка 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);, а $pdo - это экземпляр класса PDO.

Я немного растерялся: предупреждает ли меня PHP о необходимости преобразования массива в строку? Почему он не может принять такой массив в функции, которая ожидает, что массив будет передан в качестве параметра?

Ответы [ 2 ]

1 голос
/ 05 марта 2011

Прямо из страницы 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.

0 голосов
/ 04 марта 2011

В принципе, кажется, что пятый параметр set_error_handler() является массивом согласно Руководству:

Пятый параметр является необязательным, errcontext, который является массивом, который указывает на таблицу активных символовв этот момент произошла ошибка.Другими словами, errcontext будет содержать массив каждой переменной, существовавшей в области, в которой возникла ошибка. Пользовательский обработчик ошибок не должен изменять контекст ошибки.

Таким образом, проблема не в основном массиве, но массив внутри основного массива.PS: я клянусь, я не знал этого, я был почти уверен, что контекст ошибки был строкой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...