打開一個到 MySQL 伺服器的連線

mysql_connect

(PHP 4, PHP 5)

mysql_connect打開一個到 MySQL 伺服器的連線

警告

本擴充套件自 PHP 5.5.0 起已廢棄,並在自 PHP 7.0.0 開始被移除。應使用 MySQLiPDO_MySQL 擴充套件來替換之。參見 MySQL:選擇 API 指南來獲取更多資訊。用以替代本函式的有:

說明

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

打開或重複使用一個到 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_SSLMYSQL_CLIENT_COMPRESSMYSQL_CLIENT_IGNORE_SPACEMYSQL_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 the SYSTEMROOT environment variable won't be available and PHP will have problems loading Winsock.

參見

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *