Что такое возвращаемое значение после успешного выполнения INSERT с использованием sqlsrv_query () в PHP, MSSQL SERVER 2005? - PullRequest
1 голос
/ 16 сентября 2011

Используя следующий простой код:

$aQuery = "INSERT into myTable (a, b, c) VALUES (1, 'Hello', 'Goodbye')";
$result = sqlsrv_query($myConn, $aQuery ); //where $myConn is valid and defined elsewhere
if (!$result) {
    echo 'FAIL';
}
else {
    echo 'It worked BABY!';
}

Какое значение $result, если запрос выполняется успешно, и как мне правильно получить доступ к ресурсу? echo $result; напечатает: Resource id #8.

Ответы [ 3 ]

1 голос
/ 16 сентября 2011

Я думаю, что техническим термином для $ result является PHP "Statement Resource" (см .: http://msdn.microsoft.com/en-us/library/cc793139(v=sql.90).aspx), который является причудливым именем для "что бы база данных не возвращала".

Так что $ resultсодержать все, что SQL Server возвращает для операторов вставки. Я думаю, что это число затронутых записей в запросе, но я не уверен. Если вы хотите вернуть что-то другое, скажите первичный ключ записи, которую вы только что вставили, вывероятно, нужно будет вызвать хранимую процедуру, а не просто отправить оператор вставки.

1 голос
/ 16 сентября 2011

При сбое запроса $result == false

Так в вашем коде:

if (!$result) { //if result is NOT true
    echo 'FAIL'; //it failed
}
else { //otherwise
    echo 'It worked BABY!'; //it did NOT fail
}

Любое значение, которое не false или 0, считается true


Добавление на основе комментариев ниже.

Только SELECT возвращает содержимое.

0 голосов
/ 16 сентября 2011

Пример из Вундеркинды с блогами

while($row = sqlsrv_fetch_array($result))
{
    echo($row['ID'] . ', '.
     $row['Title'] . ', '.
     $row['Name']);
}

Где ID, Название и Имя - это столбцы в таблице

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