在我的脚本中,我链接到连接到我的数据库的页面:
包括"连接.php";
连接.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);
连接不是已经建立吗?
这样做
是没有意义的,特别是因为如果没有给出任何连接mysql_*
函数将承担上次打开的连接。
但是,即使两次调用mysql_connect
,也只建立一次连接。从文档中:
如果对具有相同参数的
mysql_connect()
进行第二次调用,则不会建立新链接,而是返回已打开链接的链接标识符。new_link
参数修改此行为,并使mysql_connect()
始终打开新链接,即使之前使用相同的参数调用mysql_connect()
也是如此。
因此,默认情况下,将返回现有连接。