PHP PDO MSSQL:创建临时表不存在

时间:2016-03-16 13:45:50

标签: php sql-server pdo temp-tables

当我使用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 = null '

之后才会被杀死。

也许我必须明确地告诉PDO执行保持相同连接的所有查询?喜欢' keep-alive'旗?交易似乎过分满足我的需求。

我了解全局临时表(##),但同一用户的另一个会话可以访问/修改这些表,并且我们会遇到并发问题。

如果我将使用持久连接,它将会挂起,并且任何用户都可以再次连接它并再次连接。

我也不想使用存储过程。我必须为相同的任务维护两个类(基于mysql和mssql),所以我想在php中保留所有的sql逻辑。

0 个答案:

没有答案
相关问题