PHP 菜鳥教程

PHP 高級(jí)教程

PHP & MySQL

PHP 參考手冊(cè)

PHP MySQL 連接

在本教程中,您將學(xué)習(xí)如何使用PHP連接到MySQL服務(wù)器。

通過PHP連接到MySQL的方法

為了存儲(chǔ)或訪問MySQL數(shù)據(jù)庫(kù)中的數(shù)據(jù),您首先需要連接到MySQL數(shù)據(jù)庫(kù)服務(wù)器。PHP提供了兩種不同的連接到MySQL服務(wù)器的方式:MySQLi(改進(jìn)的MySQL)和PDO(PHP數(shù)據(jù)對(duì)象)擴(kuò)展。

雖然PDO擴(kuò)展名更具可移植性,并且支持超過十二個(gè)不同的數(shù)據(jù)庫(kù),但顧名思義,MySQLi擴(kuò)展名僅支持MySQL數(shù)據(jù)庫(kù)。但是,MySQLi擴(kuò)展提供了一種連接到MySQL數(shù)據(jù)庫(kù)服務(wù)器并在其中執(zhí)行查詢的簡(jiǎn)便方法。PDO和MySQLi都提供了一個(gè)面向?qū)ο蟮腁PI,但是MySQLi還提供了一個(gè)過程API,對(duì)于初學(xué)者來(lái)說(shuō)相對(duì)容易理解。

提示:與PDO擴(kuò)展相比,PHP的MySQLi擴(kuò)展同時(shí)提供了速度和功能優(yōu)勢(shì),因此對(duì)于特定于MySQL的項(xiàng)目,它可能是更好的選擇。

連接到MySQL數(shù)據(jù)庫(kù)服務(wù)器

在PHP中,您可以使用mysqli_connect()函數(shù)輕松地執(zhí)行此操作。PHP和MySQL數(shù)據(jù)庫(kù)服務(wù)器之間的所有通信都通過此連接進(jìn)行。以下是使用MySQLi和PDO擴(kuò)展連接到MySQL的三種基本語(yǔ)法:

語(yǔ)法:MySQLi,程序化方式

$link = mysqli_connect("hostname", "username", "password", "database");

語(yǔ)法:MySQLi,面向?qū)ο蟮姆绞?/h3>
$mysqli = new mysqli("hostname", "username", "password", "database");

語(yǔ)法:PHP數(shù)據(jù)對(duì)象(PDO)方式

$pdo = new PDO("mysql:host=hostname;dbname=database", "username", "password");

上面語(yǔ)法中的hostname參數(shù)指定主機(jī)名(例如localhost)或MySQL服務(wù)器的IP地址,而username和password參數(shù)指定訪問MySQL服務(wù)器的憑據(jù),而數(shù)據(jù)庫(kù)參數(shù)(如果提供)將指定默認(rèn)MySQL 執(zhí)行查詢時(shí)要使用的數(shù)據(jù)庫(kù)。

下面的示例演示如何使用MySQLi(程序面向?qū)ο蟮?/em>方式)和PDO擴(kuò)展連接到MySQL數(shù)據(jù)庫(kù)服務(wù)器。

在線示例

<?php
/* 嘗試MySQL服務(wù)器連接。 假設(shè)您正在運(yùn)行MySQL。
具有默認(rèn)設(shè)置的服務(wù)器(沒有密碼的用戶“root”) */
$link = mysqli_connect("localhost", "root", "");
 
// 檢查連接
if($link === false){
    die("錯(cuò)誤:無(wú)法連接。" . mysqli_connect_error());
}
 
//打印主機(jī)信息
echo "連接成功。 主機(jī)信息: " . mysqli_get_host_info($link);
?>
<?php
/* 嘗試MySQL服務(wù)器連接。 假設(shè)您正在運(yùn)行MySQL。
具有默認(rèn)設(shè)置的服務(wù)器(沒有密碼的用戶“root”) */
$mysqli = new mysqli("localhost", "root", "", "demo");
 
// 檢查連接
if($mysqli === false){
    die("錯(cuò)誤:無(wú)法連接。" . $mysqli->connect_error);
}
 
//打印主機(jī)信息
echo "連接成功。 主機(jī)信息:" . $mysqli->host_info;
?>
<?php
/*嘗試MySQL服務(wù)器連接。 假設(shè)您正在運(yùn)行MySQL。
具有默認(rèn)設(shè)置的服務(wù)器(沒有密碼的用戶“root”) */
try{
    $pdo = new PDO("mysql:host=localhost", "root", "");
    
    //將PDO錯(cuò)誤模式設(shè)置為異常
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    
    //打印主機(jī)信息
    echo "連接成功。 主機(jī)信息:" . $pdo->getAttribute(constant("PDO::ATTR_CONNECTION_STATUS"));
} catch(PDOException $e){
    die("錯(cuò)誤:無(wú)法連接。 " . $e->getMessage());
}
?>

注意: MySQL數(shù)據(jù)庫(kù)服務(wù)器的默認(rèn)用戶名是root,沒有密碼。但是,為了防止數(shù)據(jù)庫(kù)被入侵和未經(jīng)授權(quán)的訪問,您應(yīng)該為MySQL帳戶設(shè)置密碼。

提示:將PDO::ATTR_ERRMODE屬性設(shè)置為PDO::ERRMODE_EXCEPTION將告訴PDO在發(fā)生數(shù)據(jù)庫(kù)錯(cuò)誤時(shí)拋出異常。

關(guān)閉MySQL數(shù)據(jù)庫(kù)服務(wù)器連接

腳本執(zhí)行結(jié)束后,與MySQL數(shù)據(jù)庫(kù)服務(wù)器的連接將自動(dòng)關(guān)閉。但是,如果您想提前關(guān)閉它,只需調(diào)用PHP mysqli_close()函數(shù)即可。

在線示例

<?php
/*嘗試MySQL服務(wù)器連接。 假設(shè)您正在運(yùn)行MySQL。
具有默認(rèn)設(shè)置的服務(wù)器(沒有密碼的用戶“root”)*/
$link = mysqli_connect("localhost", "root", "");
 
// 檢查連接
if($link === false){
    die("錯(cuò)誤:無(wú)法連接。" . mysqli_connect_error());
}
 
// 打印主機(jī)信息
echo "連接成功。 主機(jī)信息: " . mysqli_get_host_info($link);
 
// 關(guān)閉連接
mysqli_close($link);
?>
<?php
/*嘗試MySQL服務(wù)器連接。 假設(shè)您正在運(yùn)行MySQL。
具有默認(rèn)設(shè)置的服務(wù)器(沒有密碼的用戶“root”) */
$mysqli = new mysqli("localhost", "root", "", "demo");
 
// 檢查連接
if($mysqli === false){
    die("錯(cuò)誤:無(wú)法連接。" . $mysqli->connect_error);
}
 
// 打印主機(jī)信息
echo "連接成功。 主機(jī)信息: " . $mysqli->host_info;
 
// 關(guān)閉連接
$mysqli->close();
?>
<?php
/* 嘗試MySQL服務(wù)器連接。 假設(shè)您正在運(yùn)行MySQL。
具有默認(rèn)設(shè)置的服務(wù)器(沒有密碼的用戶“root”) */
try{
    $pdo = new PDO("mysql:host=localhost;dbname=demo", "root", "");
    
    //將PDO錯(cuò)誤模式設(shè)置為異常
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    
    //打印主機(jī)信息
    echo "連接成功。 主機(jī)信息: " .$pdo->getAttribute(constant("PDO::ATTR_CONNECTION_STATUS"));
} catch(PDOException $e){
    die("錯(cuò)誤:無(wú)法連接。" . $e->getMessage());
}
 
//關(guān)閉連接
unset($pdo);
?>
丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清