Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在PHP中使用临时表进行查询?_Php_Sql Server - Fatal编程技术网

如何在PHP中使用临时表进行查询?

如何在PHP中使用临时表进行查询?,php,sql-server,Php,Sql Server,我只是在PHP中尝试这个临时表的查询,但它在PHP中不起作用 IF OBJECT_ID('tempdb..##t1') IS NOT NULL DROP TABLE ##t1 select 'rec1' as col1 into ##t1; select * from ##t1 PHP代码: $database = new SQL_DB; $database->query( " IF OBJECT_ID('tempdb..##t1') IS NOT NULL DR

我只是在PHP中尝试这个临时表的查询,但它在PHP中不起作用

IF OBJECT_ID('tempdb..##t1') IS NOT NULL
    DROP TABLE ##t1
select 'rec1' as col1 into ##t1;
select * from ##t1
PHP代码:

$database = new SQL_DB;
$database->query(
  "
  IF OBJECT_ID('tempdb..##t1') IS NOT NULL
    DROP TABLE ##t1

  SELECT 'rec1' as col1 into ##t1;
  SELECT * FROM ##t1;
  "
);
$rows = $database->resultset();
SQL_DB类(简化):

它在Microsoft SQL Server Management Studio中运行良好,而我在PHP中处理过的所有其他查询都运行良好,因此不存在任何连接问题。
它肯定与临时表和“#”有关

我错过了什么

更新:

如果我将查询分为两个部分,则效果很好:

$database = new SQL_DB;
$database->query(
  "
  IF OBJECT_ID('tempdb..##t1') IS NOT NULL
      DROP TABLE ##t1
  SELECT 'rec1' as col1 into ##t1;
"
);
$database->resultset();
$database->query(
  "
  SELECT * from ##t1;
"
);
$rows = $database->resultset();

问题不在于临时表,而在于PDO如何处理多个结果集。
修复方法只是更改获取结果的方式(在本例中,是获取最后一个结果集):


问题不在于临时表,而在于PDO如何处理多个结果集。
修复方法只是更改获取结果的方式(在本例中,是获取最后一个结果集):


如何在PHP中执行此查询?使用PHP PDO executePlease向我们展示真实代码,而不是伪代码。一个@Edos代码与要回答的问题高度相关。在你的问题中显示出来。是的,对不起,我更新了问题显示你用PHP执行这个查询吗?使用PHP PDO execute,请向我们显示真实代码,而不是伪代码。一个@Edos代码与要回答的问题高度相关。在你的问题中表现出来。是的,对不起,我更新了问题
$database = new SQL_DB;
$database->query(
  "
  IF OBJECT_ID('tempdb..##t1') IS NOT NULL
      DROP TABLE ##t1
  SELECT 'rec1' as col1 into ##t1;
"
);
$database->resultset();
$database->query(
  "
  SELECT * from ##t1;
"
);
$rows = $database->resultset();
public function lastresultset($in = "") {
  try{
    if ($in == ""){
      $this->stmt->execute();
    }
    else{
      $this->stmt->execute($in);
    }
    $result = $this->stmt->fetchAll(PDO::FETCH_ASSOC);
    while($this->stmt->nextRowset()){
      $result = $this->stmt->fetchAll(PDO::FETCH_ASSOC);
    };
    return $result;
  }
  catch (PDOException $e) {
      $this->error = $e->getMessage();
  }
}