2010-04-13 68 views
2

PHP新手。PHP,MySQL和临时表

1.这个PHP & MySQL代码有什么问题吗?

include_once "db_login.php" ; 

$sql = "DROP TEMPORARY TABLE IF EXISTS temp_sap_id_select" ; 
mysql_query ($sql) or ("Error " . mysql_error()) ; 

$sql = " CREATE TEMPORARY TABLE temp_sap_id_select 
       (
       `current_page` INT NOT NULL, 
       `total_pages` INT NOT NULL, 
       `select_date` DATE NOT NULL, 
       `select_schcode` CHAR(6) NOT NULL, 
       `select_user` CHAR(30) NOT NULL, 
       `select_id` CHAR(9) NOT NULL 
       ) " ; 
mysql_query ($sql) or ("Error " . mysql_error()) ; 

2.Admittedly,我是一个沉闷的男孩,但我会问反正:如果我使用的是MySQL GUI和具有打开目标数据库,将它意识到创建的上述临时表通过PHP/MySQL(如果临时表已正确创建)?

+0

在执行脚本时是否收到任何错误消息?如果是的,它是什么? – 2010-04-13 05:06:54

+1

永远不要问“有什么问题”,但只有“我怎么知道是否有什么问题”。不幸的是,SO用户头脑中没有PHP解释器,可以在视线上运行代码。另一方面,你的PHP会一直告诉你是否有什么不对,如果你让他 – 2010-04-13 05:10:04

+0

那么说@Col。 – 2010-04-13 05:11:09

回答

9

临时表仅对用于创建它们的连接可见,并且一旦连接关闭,临时表就会消失。

+0

好的,这是很好的知道。所以我的MySQL gui不会看到这个临时表,即使两个连接(PHP和gui)每个仍然单独打开并且每个都使用相同的db登录细节。 – dave 2010-04-13 05:22:52

+1

那么使用连接池可能会很危险? – Mohsen 2012-08-24 04:25:42

+0

@Mohsen我认为连接池意味着你有一定数量的连接例子10,你将会使用,这种snigletton模式只能管理N个连接。如果临时表是通过连接持久的,那么它不会消失,它将被N个打开的连接之一卡住。 (我猜) – 2013-11-26 23:09:58