Не удается получить сообщение SQL Server Print с помощью PHP PDO

Я использую PDO (драйвер dblib) для вызова хранимой процедуры SQL Server. Когда он делает ошибку, он использует PRINT для генерации ответного сообщения. Проблема в том, что я не могу получить сообщение с функцией errorInfo. Результат пуст, и rowcount также возвращает -1.

Например, когда я запускаю хранимую процедуру в sql server management studio:

CALL x_prodcedure 1,2

Это выводит (не набор строк): Invalid ID/data

Когда я делаю тот же вызов в php, данные набора строк не найдены, и errorinfo возвращает:

Array
(
[0] => 00000
[1] => 0
[2] => (null) [0] (severity 0) [(null)]
[3] => 0
[4] => 0
)

Не уверен, какие другие функции я могу использовать, чтобы получить сообщение «Неверный идентификатор / данные»

1

Решение

На самом деле PDO ERROR 000 значение ошибки при успешном выполнении запроса.

Вы должны печатать только в случае неудачи, в противном случае вы должны игнорировать.

В вашем случае что-то вроде:

if(!$stmt->execute(array(...))){
var_dump($dbh->errorInfo()); //not outside of the failure block
}else{
var_dump($stmt->fetchAll());
}

Более вероятный not a rowset не считается ошибкой для PDO

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]