SQL Server — PHP PDO MSSQL: созданная временная таблица не существует

Когда я использую mysqli, я делаю:

$mysqli->query('create temporary table __tmp(tm_start int, tm_end int, tm_origin int, tm_num int)');
$mysqli->query('insert into  __tmp values
( 1447977600, 1448582400, 1447977600, 0 ),
( 1448582400, 1449187200, 1448582400, 1 )');
$result=$mysqli->query('select * from __tmp');

и получите то, что я только что вставил.

Но когда я использую подобный код с PDO, подключенным к MSSQL:

$pdo->query("create table #__tmp(tm_start int, tm_end int, tm_origin int, tm_num int)");
$pdo->query('insert into  #__tmp values
( 1447977600, 1448582400, 1447977600, 0 ),
( 1448582400, 1449187200, 1448582400, 1 )');

второй запрос возвращает ошибку таблица не существует.
Я предполагал, что все после$ pdo = новый PDO (…)‘будет такой же сеанс, как в mysqli, а временные таблицы будут уничтожены только после’$ PDO = нуль».

Может быть, я должен явно указать PDO выполнить все запросы, сохраняя то же соединение? Что-то вроде флага «оставайся в живых»? Транзакции кажутся чрезмерными для моих нужд.

Я знаю о глобальных временных таблицах (##), но другой сеанс этого же пользователя может получить доступ к этим таблицам или изменить их, и у нас будут проблемы с параллелизмом.

Если я буду использовать постоянное соединение, оно будет зависать, и снова любой пользователь может подключиться к нему и снова параллелизм.

Я бы тоже не хотел использовать хранимые процедуры. Я должен поддерживать два класса (на основе mysql и mssql) для одних и тех же задач, поэтому я хочу сохранить всю логику sql в php.

0

Решение

Задача ещё не решена.

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

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

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