powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / php + mssql. не берется SCOPE_IDENTITY()
10 сообщений из 10, страница 1 из 1
php + mssql. не берется SCOPE_IDENTITY()
    #37234049
Nik_500
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
$conn = get_connection();
if(!$conn) return -1;

$tsql = "INSERT INTO Dialogue (Question, IP_Guest, QDateTime, status)
VALUES ('que', '127.0.0.1', CURRENT_TIMESTAMP, 1); SELECT SCOPE_IDENTITY() as retID; ";
echo "начинаем выполнение<br>";
$stmt = sqlsrv_query( $conn, $tsql);

if( $stmt === false)
{
echo "Error in query preparation/execution.\n";
die( print_r( sqlsrv_errors(), true));
}
$row = sqlsrv_fetch_array( $stmt);
ECHO 'begin row<br>';
echo get_resource_type( $stmt);
echo "<br>";
echo gettype($row);
echo "<br>";
echo (int)$row;
echo "<br>";
ECHO 'end row<br>';

получаем
начинаем выполнение
begin row
SQL Server Statement
boolean
0
end row

кажется странным что должны были получить массив значений $row. а это не массив а boolean и false.
что же сделать чтобы получить долгожданный ИД ?
...
Рейтинг: 0 / 0
php + mssql. не берется SCOPE_IDENTITY()
    #37234060
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
версия сиквела?
...
Рейтинг: 0 / 0
php + mssql. не берется SCOPE_IDENTITY()
    #37234080
Nik_500
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ScareCrow,

Microsoft SQL Server 2005 - 9.00.1399.06 (Intel X86) Oct 14 2005 00:33:37 Copyright (c) 1988-2005 Microsoft Corporation Enterprise Edition on Windows NT 5.2 (Build 3790: Service Pack 2)

PHP 5.3.6

win 2003 server standard

sqlsrv драйвер от майкрософт
...
Рейтинг: 0 / 0
php + mssql. не берется SCOPE_IDENTITY()
    #37234110
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
$tsql = "INSERT INTO Dialogue (Question, IP_Guest, QDateTime, status)
VALUES ('que', '127.0.0.1', CURRENT_TIMESTAMP, 1); SELECT SCOPE_IDENTITY() as retID; ";
а если эти запросы по одному выполнить?
...
Рейтинг: 0 / 0
php + mssql. не берется SCOPE_IDENTITY()
    #37234240
Фотография vladgrig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lastInsertId

nextRowset

Успехов!
...
Рейтинг: 0 / 0
php + mssql. не берется SCOPE_IDENTITY()
    #37234311
Nik_500
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ScareCrow,

Вот по одному выполняются как надо. Пока так оставлю.
Просто на самом деле это хранимка и в идеале хотелось бы через нее..
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
php + mssql. не берется SCOPE_IDENTITY()
    #38685339
pvevd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте. Столкнулась с аналогичной проблемой при переезде с SQL Server 2000 на 2012. Есть хранимая процедура, внутри которой используется SCOPE_IDENTITY


Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
CREATE procedure SInsertResource (
    @params
    @res INT OUTPUT
)
AS
BEGIN
    -- проверка условий доступа
    IF @access BEGIN
        INSERT INTO Resources (params1) VALUES (@params1)
        SET @res_id = SCOPE_IDENTITY() --с этого момента все наперекосяк
        SET @res = @res_id
        INSERT INTO ResourcesUploadData (id, params2) VALUES (@res_id, @params2)
        IF @IsTest = 0 BEGIN
            INSERT INTO Files (params3) VALUES (@params3)
            SET @file_id = SCOPE_IDENTITY()
            INSERT INTO EduResources (FileLink, params4) VALUES (@file_id, @params4)
        END
        ELSE
            INSERT INTO Tests (Resource, params5) VALUES (@res_id, @params5)
    END
    ELSE
        SET @res = 0
    END


Из sql процедура выполняется, но из php (версия PHP 5.3.13) ломается на SCOPE_IDENTITY(). Есть ли способ заставить процедуру работать, кроме как выносить всю логику в php код, используя lastInsertId?
...
Рейтинг: 0 / 0
php + mssql. не берется SCOPE_IDENTITY()
    #38685810
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
есть.
...
Рейтинг: 0 / 0
php + mssql. не берется SCOPE_IDENTITY()
    #38686360
pvevd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, добрый человек =) Подскажите пожалуйста, этот способ, или в каком направлении его искать.
...
Рейтинг: 0 / 0
php + mssql. не берется SCOPE_IDENTITY()
    #38686709
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
фетчить всё, вар дампить и выкладывать сюда.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / php + mssql. не берется SCOPE_IDENTITY()
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]