建議(免費):PHP7
PHP 5 的使用者可以使用 mysql extension,mysqli 和 PDO_MYSQL 。 PHP 7移除了mysql extension,只剩下後面兩個選項.
這份文件解釋了每個API 的術語,幫助我們如何使用API 和了解相關API的資訊。
PHP 提供了三種不同的API去連接mysql資料庫。下面的範例程式碼展示了3種不同連接mysql資料庫的方式。
/* * mysqli * 数据库地址,登陆账号,密码,数据库名称 */ $mysqli = new mysqli("localhost", "root", "", "student"); $sql = "SELECT * FROM tb_user"; $result = $mysqli->query($sql); $row = $result->fetch_assoc(); // 从结果集中取得一行作为关联数组 echo $row["password"]; /* free result set */ $result->free(); /* close connection */ $mysqli->close();
/* * 第一个参数是mysql:host,第二是dbname,第三个账户名,第四个密码 */ try { $pdo = new PDO("mysql:host=localhost;dbname=student", "root", ""); } catch (PDOException $e) { echo 'Connection failed: ' . $e->getMessage(); } $sql = "select * from tb_user"; echo $sql . "<BR>"; $pdo->query('set names utf8;'); $result = $pdo->query($sql); $rows = $result->fetchAll(); foreach ($rows as $row) { $username = $row[1]; $pwd = $row[2]; echo $username; }
我們推薦使用mysqli或PDO_Mysql
拓展,不建議在新開發中使用舊的mysql拓展,因為它在PHP5.5.0中不再使用並且在PHP7.0中移除。
設定編碼很重要,是utf8而不是uft-8
#$conn->set_charset("utf8");或者这样也可以$conn->query("set names utf8;");<pre style="font-family: 'DejaVu Sans Mono'; font-size: 15pt; background-color: rgb(255, 255, 255);">
概念:
有快取和沒有快取的查詢
查詢預設使用有快取的查詢。這意味著查詢結果馬上從Mysql伺服器傳送到PHP,然後被保存在php解析器記憶體中。這允許額外的操作像計算行數,移動或尋找當前的結果指標。它也允許在相同的連接和結果集上進一步查詢。快取模式不好的一面是大的結果集可能需要很大的內存,這些內存一直佔用直到結果集被清除或被釋放,這是在請求結束自動進行的。術語儲存結果就是用來表示快取模式,所有結果集馬上都被保存。
沒有快取的Mysql查詢被執行,馬上回傳一個資源,資料一直等待mysql伺服器被連線取得。這是用了更少的內存在php一方,但這回增加伺服器的負載。直到所有的結果集從伺服器被取走且沒有發送建立在同一個連線上的查詢。沒有快取的查詢也被稱為使用結果。
從這些特性可以看出,快取查詢用在當你只希望得到一個有限的結果集和或或在讀取結果集前就知道傳回結果集的行數。沒有快取的查詢模式用在當你要回傳大量的資料。
因為預設是快取查詢模式,下面的範例將會驗證如何執行沒有快取的查詢API。
<?php $mysqli = new mysqli("localhost", "my_user", "my_password", "world"); $uresult = $mysqli->query("SELECT Name FROM City", MYSQLI_USE_RESULT); if ($uresult) { while ($row = $uresult->fetch_assoc()) { echo $row['Name'] . PHP_EOL; } } $uresult->close(); ?>
以上是講解php7連接mysql資料庫的詳細內容。更多資訊請關注PHP中文網其他相關文章!