在先前的文章中為大家帶來了《怎麼使用PHP中的spl_autoload_register() 和 __autoload() 函數? 》,其中詳細的介紹了PHP中這兩種函數的用法,本篇我們來看看PHP中怎麼去連接資料庫。希望對大家有幫助!
在我們的日常開發中,資料庫是一個網站必不可少的一部分,PHP作為一種網頁程式設計技術,也必不可少的要與資料庫打交道。但是資料庫的種類很多,哪一種資料庫是最適合PHP的呢?
透過PHP可以連接和操作資料庫,PHP可以連接的資料庫種類較多,其中MySQL資料庫與PHP相容性好,搭配使用也是最廣泛的,MySQL資料庫是跟PHP搭配使用最流行的開放資料庫系統,那接下來我們一起來學習看看什麼是MySQL資料庫以及PHP應該怎麼連接它。
什麼是MySQL
資料庫
#MySQL 是一款安全性、跨平台、高效能的,並與多種程式語言緊密結合的資料庫系統。 MySQL 是一種在 Web 上使用在伺服器上執行的資料庫系統。體積小、速度快、整體擁有成本低,MySQL 資料庫可稱得上是目前運作速度最快的 SQL 語言資料庫之一。除了具有許多其他資料庫所沒有的功能外,MySQL 資料庫也是完全免費的產品,使用者可以直接透過網路下載 MySQL 資料庫,而不必支付任何費用。大家有興趣的話也可以點選《MySQL最新手冊教學》學習。
MySQL資料庫的特性
#功能強大,支援跨平台MySQL 適用於不同的應用場合,MySQL 支援至少20 種以上的開發平台,這使得在任何平台下編寫的程式都可以進行移植,而不需要對程式做任何的修改。
運行速度快,高速是 MySQL 的顯著特性。在 MySQL 中,能夠極快地實現連接;SQL 函數使用高度最佳化的類別庫實現,運行速度極快。
支援物件導向,PHP 支援混合程式設計方式。程式設計方式可分為純粹物件導向、純粹過程導向、面句物件與流程面混合 3 種方式。
安全性高,靈活且安全的權限與密碼系統。
成本低,MySQL 資料庫是完全免費的產品,使用者可以直接透過網路下載。
支援各種開發語言,MySQL 為各種流行的程式設計語言提供支持,為它們提供了許多的API 函數。
資料庫儲存容量大,支援強大的內建函數,PHP 中提供了大量內建函數,幾乎涵蓋了Web 應用開發中的所有功能。
資料庫的應用程式
#資料庫是一種專門用來管理資料資源的系統,資料其實就是電腦每天打交道需要處理的對象,無論是文字、圖形或聲音等等這些都是資料的一種形式。在文件式管理方法中,有著諸如不便移植、浪費儲存空間等問題,但是資料庫更夠更好的解決這些問題。
資料庫立足於資料本身的管理,他將所有的資料保存到資料庫中,進行有序的組織,並且借助資料庫管理系統能夠更方便的使用資料庫中的資料。可以理解為資料庫就是經過了電腦整理後的數據,管理這些數據的軟體就是數據管理系統。一個資料庫系統是由資料庫和資料管理系統兩個部分組成的。
在同一個 MySQL 資料庫伺服器中可以建立多個資料庫,如果把每個資料庫看成是一個“倉庫”,那麼網站中的內容資料就儲存在這個倉庫中。而資料庫中資料的存取及維護等,都是透過資料庫管理系統軟體進行管理的。
連接MySQL資料庫
使用PHP 操作MySQL 資料庫是進行Web 開發的必然要求之一,PHP 中提供了完整的操作MySQL資料庫的函數,這些函數包括了從連接資料庫、執行SQL 語句、處理資料結果集到關閉資料庫的方方面面。透過這些函數,讓基於 MySQL 資料庫的 Web 開發高效且簡單。那接下來我們就來看看PHP怎麼連接到MySQL資料庫。
在連接到資料庫之前,我們要確保開啟了 PHP 中的 mysqli
擴充。開啟 mysqli 擴充功能就是將 php.ini
設定檔中extension=mysqli
這一項註解去掉就行了。我們可以透過 phpinfo()
函數查看來查看mysqli 擴充功能是否開啟成功:
<?php phpinfo(); ?>
在輸出結果中出現:
就表示已經開啟PHP中的mysqli 擴展,在我們確認已經成功開啟後,就可以透過擴充中的mysqli_connect()
函數來進行PHP與MySQL資料庫的連線。
其中mysqli_connect()
函数的语法格式如下:
mysqli_connect( [string $host = ini_get("mysqli.default_host") [, string $username = ini_get("mysqli.default_user") [, string $password = ini_get("mysqli.default_pw") [, string $dbname = "" [, int $port = ini_get("mysqli.default_port") [, string $socket = ini_get("mysqli.default_socket") ]]]]]] )
其中需要注意的是:
$host
是可选参数,要连接的服务器;
$username
是可选参数,登录所使用的 MySQL 用户名;
$password
是可选参数,登录所用的密码;
$dbname
是可选参数,执行查询时使用的默认数据库;
$port
是可选参数,指定连接到 MySQL 服务器的端口号;
$socket
是可选参数,指定 socket 或要使用的已命名 pipe;
mysqli_connect()
函数是 mysqli::__construct() 函数的别名,所有使用对象 mysqli() 也可以实现连接数据库。
接下来我们通过示例来看一下应该怎样连接,示例如下:
<?php $host = 'localhost'; $username = 'root'; $password = 'root'; $dbname = 'test'; $port = '3306'; $link = @mysqli_connect($host,$username,$password,$dbname,$port); // 连接到数据库 if($link){ mysqli_set_charset($link,'UTF-8'); // 设置数据库字符集 $sql = 'select * from user'; // SQL 语句 $result = mysqli_query($link, $sql); // 执行 SQL 语句,并返回结果 $data = mysqli_fetch_all($result); // 从结果集中获取所有数据 mysqli_close($link); }else{ die('数据库连接失败!'); } echo '<pre class="brush:php;toolbar:false">'; print_r($data); ?>
输出结果会获取数据库中你所设置的字符集,若是没有连接上两种输出结果如下所示:
上述示例是面向过程的一种方法,下面看一下面向对象的方法:
<?php $host = 'localhost'; $username = 'root'; $password = 'root'; $dbname = 'test'; $mysql = new Mysqli($host, $username, $password, $dbname); if($mysql -> connect_errno){ die('数据库连接失败:'.$mysql->connect_errno); }else{ $mysql -> set_charset('UTF-8'); // 设置数据库字符集 $sql = 'select * from user'; // SQL 语句 $result = $mysql -> query($sql); $data = $result -> fetch_all(); $mysql -> close(); } echo '<pre class="brush:php;toolbar:false">'; print_r($data); ?>
输出结果与上述示例中的输出结果一致。
想要关闭连接的话,一般情况下,连接会在脚本运行完毕后自动关闭,当然也可以使用代码来关闭连接,示例如下:
$conn->close();
上述是面向对象方法时的关闭连接代码,下面看一下面向过程方法的代码,示例如下:
mysqli_close($conn);
大家如果感兴趣的话,可以点击《PHP视频教程》进行更多关于PHP知识的学习。
以上是PHP中怎樣去連接MySQL資料庫?的詳細內容。更多資訊請關注PHP中文網其他相關文章!