PHP? MySQL? ??
PHP 5 ????? ?? ??? ???? MySQL? ???? ?? ????.
MySQLi ??("i"? ???? ??)
PDO (PHP ??? ??)
PHP ?? ????? MySQL ??? ?????. ??? ? ??? 2012?? ? ?? ???? ????.
PDO? ?? ?? ??? PHP ?? ???? PHP PDO? ?????.
MySQLi? ???? ???, ??? PDO? ???? ????
?? ??? ??? ?? "?? ??? ?????."
MySQLi? PDO?? ??? ??? ????. ???????????????????????????? 12?? ?? ?? ?????? ?? MySQL ??
?? ?? ?? ? ?
?? ?? ?? ?? ?? ? ?
?? ??????????????????????????????????????????????????????????????? ??
??? PDO? ??? ??? ??? ?? ???? ??? ??????? ??? ???? ?? ?? ??? ? ????. ????? ?? ?????? ?? ???? ?? ?? ?????. ?? ???? PDO? ????? ?? ???? ?? ?? ?? ???? ???. ??? MySQLi ??? ? ???? MySQLi? ???? MySQL ??????? ??? ? ????. ?? ??????? ???? ?? ??? ??? ?? ??? ?? ???? ???. ? ? ?? ????? MySQLi? API ?????? ?????.? ? ??? ??? ?????. ??? ???? SQL ??? ??? ? ??? ? ???? ??? ?? ?????.
MySQLi ? PDO? MySQL ????? ??
? ?? ?? ???? ?? ? ?? ??? ???? PHP ??? ?????. MySQL:
MySQLi(?? ??)
MySQLi(???? ??)
PDO
MySQLi ??
Linux ? Windows: php5 mysql ?? ??? MySQLi ??? ???? ?? ???? ?????.
?? ?? ??? http://php.net/manual/en/mysqli.installation.php? ?????.
.php ?? ???? ?? PHP ?????(PhpStorm)? ??? ? ????. phpinfo()? ???? ???? ????? ?? ??? ????? ?????.
PDO ??
?? ?? ??? http://php.net/manual/en/pdo.installation.php? ?????.
?? ?? ??? ??? ? ????. phpinfo()? ?? :
MySQL? ??
MySQL ??????? ????? ?? ??? ?????. ?? ?????? ??? ?????:
??(MySQLi - ?? ??)
<?php // 三個(gè)參數(shù) $servername = "localhost"; // 服務(wù)器地址(域名、IP) $username = "username"; // 數(shù)據(jù)庫用戶名 $password ="password"; // 數(shù)據(jù)庫密碼(可能為空) // 創(chuàng)建連接 $conn =new mysqli($servername, $username, $password); // 檢測(cè)連接 if ($conn->connect_error) { die("連接失敗: " . $conn->connect_error); } echo "連接成功"; ?>
?? ?? ?? ??? $connect_error? PHP? ????. 5.2.9 ? 5.3.0? ???????. ?? ???? ???? ??? ?? ?? ?? ??? ??????.
// ?? ??
if (mysqli_connect_error()) {
die(" ?????? ?? ??: " . mysqli_connect_error());
}?
????(MySQLi - ???)
<?php $servername = "localhost"; $username = "username"; $password = "password"; // 創(chuàng)建連接 $conn = mysqli_connect($servername,$username, $password); // 檢測(cè)連接 if (!$conn) { die("Connection failed: " . mysqli_connect_error()); } echo "連接成功"; ?>
?? ???? ?? ??? ??????? ??? ? ????? ??????? ??? ?? ????? ?? ? ?? ????? ????. $db_name = "db_name"; // ?????? ??
// ?? ???
$conn = mysqli_connect($servername, $username, $password, $db_name);
????(PDO)
<?php $servername = "localhost"; $username = "username"; $password = "password"; try { $conn = new PDO("mysql:host=$servername;dbname=myDB",$username, $password); echo "連接成功"; } catch(PDOException $e) // PDOException 錯(cuò)誤處理 { echo $e->getMessage(); // getMessage()取得文本化的錯(cuò)誤信息 } ?>?? PDO ??????? ??????(myDB)? ??????. PDO? ?? ???? ?? ?????? ??? ???? ???. ???? ??? ??? ?????. ? ? ? ?
?? ??
????? ??? ? ???? ??? ????. ?? ??? ???? ??? ?? ?? ????.
????(MySQLi - ?? ??)
$coon->close();
????(MySQLi - ???? ??)
mysql_close($coon);
????(PDO)
mysql_close($coon);
??
?? ??????? ???? ?? ??? ?? ?? ?? ?? ??(???):
?
<?php $conn = mysqli_connect($servername,$username,$password); // 獲取連接 if($conn){ //判斷是否連接 mysqli_select_db($conn,"db_name"); // 選擇一個(gè)數(shù)據(jù)庫 mysqli_query($conn,"set names utf8"); // 查詢輸出要使用utf8的編碼格式,避免亂碼 $sql = "select * from product;"; // 查找到數(shù)據(jù)庫的product表() $result = mysqli_query($conn,$sql); // 從鍵連獲取到數(shù)據(jù)庫的字表 while($row = mysqli_fetch_array($result,MYSQL_ASSOC)){ // MYSQLI_ASSOC返回鍵值形式數(shù)組 echo $row["需要輸出的表中列的名稱"]; } mysqli_free_result($result); // 釋放內(nèi)存在 mysqli_close($conn); // 關(guān)閉連接 echo "成功"; }else{ echo "失敗"; }; ?>