mysql_connect

(PHP 4, PHP 5)

mysql_connect打開一個(gè)到 MySQL 服務(wù)器的連接

警告

本擴(kuò)展自 PHP 5.5.0 起已廢棄,并在自 PHP 7.0.0 開始被移除。應(yīng)使用 MySQLiPDO_MySQL 擴(kuò)展來(lái)替換之。參見 MySQL:選擇 API 指南來(lái)獲取更多信息。用以替代本函數(shù)的有:

說(shuō)明

mysql_connect(
    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

打開或重復(fù)使用一個(gè)到 MySQL 服務(wù)器的連接。

參數(shù)

server

MySQL 服務(wù)器。可以包括端口號(hào),例如 "hostname:port",或者到本地套接字的路徑,例如對(duì)于 localhost 的 ":/path/to/socket"。

如果 PHP 指令 mysql.default_host 未定義(默認(rèn)情況),則默認(rèn)值是 'localhost:3306'。 在 SQL 安全模式 時(shí),參數(shù)被忽略,總是使用 'localhost:3306'。

username

用戶名。默認(rèn)值由 mysql.default_user 定義。 在 SQL 安全模式 時(shí),參數(shù)被忽略,總是使用服務(wù)器進(jìn)程所有者的用戶名。

password

密碼。默認(rèn)值由mysql.default_password定義。在 SQL 安全模式 時(shí),參數(shù)被忽略,總是使用空密碼。

new_link

如果用同樣的參數(shù)第二次調(diào)用 mysql_connect(),將不會(huì)建立新連接,而將返回已經(jīng)打開的連接標(biāo)識(shí)。參數(shù) new_link 改變此行為并使 mysql_connect() 總是打開新的連接,甚至當(dāng) mysql_connect() 曾在前面被用同樣的參數(shù)調(diào)用過(guò)。

client_flags

client_flags 參數(shù)可以是以下常量的組合:MYSQL_CLIENT_SSL,MYSQL_CLIENT_COMPRESS,MYSQL_CLIENT_IGNORE_SPACEMYSQL_CLIENT_INTERACTIVE。進(jìn)一步信息見 MySQL 客戶端常量。

返回值

如果成功則返回一個(gè) MySQL 連接標(biāo)識(shí), 或者在失敗時(shí)返回 false

更新日志

版本 說(shuō)明
5.5.0 此函數(shù)會(huì)生成一個(gè) E_DEPRECATED 錯(cuò)誤。

范例

示例 #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 語(yǔ)法

<?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" 語(yǔ)法

<?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 客戶端庫(kù)會(huì)越過(guò)此值并嘗試連接到本地套接字(Windows 中的名字管道)。如果想用 TCP/IP,應(yīng)該用 "127.0.0.1" 代替 "localhost"。如果 MySQL 客戶端庫(kù)試圖連接到一個(gè)錯(cuò)誤的本地套接字,則應(yīng)該在 PHP 配置中設(shè)定 的正確路徑并把 server 留空。

注意:

腳本一結(jié)束,到服務(wù)器的連接就被關(guān)閉,除非之前已經(jīng)明確調(diào)用 mysql_close() 關(guān)閉了。

注意:

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 the SYSTEMROOT environment variable won't be available and PHP will have problems loading Winsock.

參見