連接 localhost:3306,用戶 root/9999,資料庫 ok,表 abc(欄位 id、name),讀取全表數據。
<?php
$dbh = @mysql_connect("localhost:3306", "root", "9999");
if (!$dbh) die("error");
@mysql_select_db("ok", $dbh);
$q = "SELECT * FROM abc";
?>
mysql_fetch_row() — 數值索引陣列<?php
$rs = mysql_query($q, $dbh);
if (!$rs) die("Valid result!");
echo "<table><tr><td>ID</td><td>Name</td></tr>";
while ($row = mysql_fetch_row($rs)) {
echo "<tr><td>$row[0]</td><td>$row[1]</td></tr>";
}
echo "</table>";
?>
$row[0]、$row[1] 對應 SELECT 列順序,可互換位置。
mysql_fetch_object() — 物件屬性訪問<?php
$rs = mysql_query($q, $dbh);
while ($row = mysql_fetch_object($rs)) {
echo "$row->id $row->name <br />";
}
?>
以欄位名為屬性,語義清晰,順序不影響輸出。
mysql_fetch_array() — 關聯+數值雙索引(最快)<?php
$rs = mysql_query($q, $dbh);
while ($row = mysql_fetch_array($rs)) {
echo "$row[id] $row[name] <br />";
}
?>
同時支援 $row[0] 和 $row['id'],靈活度最高,官方文檔標註性能最優。
<?php @mysql_close($dbh); ?>
mysql_* 系列已於 PHP 7.0 移除,現代專案請使用 mysqli 或 PDO,並採用預處理語句防注入。