页面更改后关闭mysql连接

时间:2015-12-31 04:08:26

标签: php mysql yii2

我有2个程序insertTemp()Search()

这是InsertTemp():

CREATE DEFINER=`root`@`localhost` PROCEDURE `InsertTemp`(
    IN keyword TEXT
    )
    BEGIN
    DROP TABLE IF EXISTS TempResult;
    CREATE  TEMPORARY TABLE TempResult
    (
    id            INT(11),
    title       TEXT,
    author    TEXT,
    publisher   TEXT,
    );              

    INSERT INTO tempCariOpac
    SELECT * from TempResult;  

    END

和搜索():

CREATE DEFINER=`root`@`localhost` PROCEDURE `Search`(
IN limit1 INT, 
IN limit2 INT,
)
BEGIN
SELECT * from catalogs     

      LIMIT limit1,limit2;    
END

在我的第一页上,我执行了InsertTemp()Search(),在我的第二页上我只运行了搜索(),因为在第一页上我已经运行InsertTemp()并创建了临时表。 Search()正在从临时表中搜索数据,但在转到第2页后,我的临时表不存在。我认为它是由一个封闭的连接引起的。

我可以使sql连接保持活跃吗?

在.Net中,我没有遇到这些问题。

1 个答案:

答案 0 :(得分:1)

临时表仅对创建它的连接可见。可能有300个临时表,所有临时表都使用相同的名称,并且不会中断或相互冲突。实际上,您无法访问由其他连接创建的临时表。

因此,当您查询时,您将从同一连接创建的临时表中获得结果。

如果关闭连接,临时表将被删除。所以,故事的道德,创建一个临时表,然后查询它,所有都在同一个连接。

但是,请尝试使用此方法从php创建mysql的持久连接,这可能会帮助您。

  

http://php.net/manual/en/function.mysql-pconnect.php