mysql_connect
(PHP 4, PHP 5)
mysql_connect — 打開一個到 MySQL 伺服器的連線
本擴充套件自 PHP 5.5.0 起已廢棄,並在自 PHP 7.0.0 開始被移除。應使用 MySQLi 或 PDO_MySQL 擴充套件來替換之。參見 MySQL:選擇 API 指南來獲取更多資訊。用以替代本函式的有:
說明
string
$server
= ini_get("mysql.default_host"),string
$username
= ini_get("mysql.default_user"),string
$password
= ini_get("mysql.default_password"),bool
$new_link
= false
,int
$client_flags
= 0): resource|false
打開或重複使用一個到 MySQL 伺服器的連線。
參數
-
server
-
MySQL 伺服器。可以包括埠號,例如 "hostname:port",或者到本地套接字的路徑,例如對於 localhost 的 ":/path/to/socket"。
如果 PHP 指令 mysql.default_host 未定義(預設情況),則預設值是 'localhost:3306'。 在 SQL 安全模式 時,參數被忽略,總是使用 'localhost:3306'。
-
username
-
使用者名稱。預設值由 mysql.default_user 定義。 在 SQL 安全模式 時,參數被忽略,總是使用伺服器程序所有者的使用者名稱。
-
password
-
密碼。預設值由mysql.default_password定義。在 SQL 安全模式 時,參數被忽略,總是使用空密碼。
-
new_link
-
如果用同樣的參數第二次呼叫 mysql_connect(),將不會建立新連線,而將返回已經打開的連線標識。參數
new_link
改變此行為並使 mysql_connect() 總是打開新的連線,甚至當 mysql_connect() 曾在前面被用同樣的參數呼叫過。 -
client_flags
-
client_flags
參數可以是以下常量的組合:MYSQL_CLIENT_SSL
,MYSQL_CLIENT_COMPRESS
,MYSQL_CLIENT_IGNORE_SPACE
或MYSQL_CLIENT_INTERACTIVE
。進一步資訊見 MySQL 客戶端常量。
返回值
如果成功則返回一個 MySQL 連線標識, 或者在失敗時返回 false
。
更新日誌
版本 | 說明 |
---|---|
5.5.0 |
此函式會產生一個 E_DEPRECATED 錯誤。
|
範例
示例 #1 mysql_connect() 例子
<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
die('Could not connect: ' . mysql_error());
}
echo 'Connected successfully';
mysql_close($link);
?>
示例 #2 mysql_connect() 例子:使用 hostname:port
語法
<?php
// we connect to example.com and port 3307
$link = mysql_connect('example.com:3307', 'mysql_user', 'mysql_password');
if (!$link) {
die('Could not connect: ' . mysql_error());
}
echo 'Connected successfully';
mysql_close($link);
// we connect to localhost at port 3307
$link = mysql_connect('127.0.0.1:3307', 'mysql_user', 'mysql_password');
if (!$link) {
die('Could not connect: ' . mysql_error());
}
echo 'Connected successfully';
mysql_close($link);
?>
示例 #3 mysql_connect() 例子:使用 ":/path/to/socket" 語法
<?php
// we connect to localhost and socket e.g. /tmp/mysql.sock
// variant 1: omit localhost
$link = mysql_connect(':/tmp/mysql', 'mysql_user', 'mysql_password');
if (!$link) {
die('Could not connect: ' . mysql_error());
}
echo 'Connected successfully';
mysql_close($link);
// variant 2: with localhost
$link = mysql_connect('localhost:/tmp/mysql.sock', 'mysql_user', 'mysql_password');
if (!$link) {
die('Could not connect: ' . mysql_error());
}
echo 'Connected successfully';
mysql_close($link);
?>
註釋
注意:
只要將 server 指定為 "localhost" 或 "localhost:port",MySQL 客戶端庫會越過此值並嘗試連線到本地套接字(Windows 中的名字管道)。如果想用 TCP/IP,應該用 "127.0.0.1" 代替 "localhost"。如果 MySQL 客戶端庫試圖連線到一個錯誤的本地套接字,則應該在 PHP 配置中設定 的正確路徑並把 server 留空。
注意:
指令碼一結束,到伺服器的連線就被關閉,除非之前已經明確呼叫 mysql_close() 關閉了。
注意:
Error "Can't create TCP/IP socket (10106)" usually means that the variables_order configure directive doesn't contain character
E
. On Windows, if the environment is not copied theSYSTEMROOT
environment variable won't be available and PHP will have problems loading Winsock.