php插入查询 - 为什么有两个数据库连接?

时间:2014-04-06 15:18:02

标签: php insert

在我的脚本中,我链接到连接到我的数据库的页面:

包括“connect.php”;

connect.php

<?php
error_reporting(E_ERROR);
/* Allows PHP to connect to your database */
// Database Variables
$Host = "myhost";
$User = "username";
$Password = "password";
$DBName = "database";
// Connect to Database
$connect = mysql_connect($Host, $User, $Password) 
or die ("Could not connect to server ... \n" . mysql_error ());
mysql_select_db($DBName) 
or die ("Could not connect to database ... \n" . mysql_error ());
?

然后在另一个脚本中我有一个插入查询:

include "connect.php";

$Link = mysql_connect($Host, $User, $Password);
$Query = "INSERT INTO mytable VALUES ('0','".mysql_escape_string($forename)."','".mysql_escape_string($surname)."', '".mysql_escape_string($username)."', '".mysql_escape_string($password)."', '".mysql_escape_string($email)."')";

        if(mysql_db_query ($DBName, $Query, $Link)) {
            $message = "You have successfully registered";
            header("Location: register.php?message=".urlencode($message));
        } else {

            die("Query was: $Query. Error: ".mysql_error($Link));
        }
    }
}

为什么这是必要的:

$Link = mysql_connect($Host, $User, $Password);

是否已建立连接?

1 个答案:

答案 0 :(得分:0)

这样做没有意义,特别是如果没有给出mysql_*函数将假定最后打开的连接。

但是,即使拨打mysql_connect两次,也只会建立一个连接。来自docs

  

如果使用相同的参数对mysql_connect()进行第二次调用,则不会建立新的链接,而是返回已打开的链接的链接标识符。 new_link参数会修改此行为,并使mysql_connect()始终打开新链接,即使之前使用相同参数调用mysql_connect()也是如此。

因此,默认情况下,将返回现有连接。