複数行のレコードを取得する

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>複数行の結果を取得したい(MySQL)</title>
</head>
<body>
<?php
// データベース設定
$dbServer = 'localhost';
$dbUser   = 'user';
$dbPass   = 'password';
$dbName   = 'sample';

$flag = TRUE;
// MySQLデータベースに接続
if (!$link = mysql_connect($dbServer, $dbUser, $dbPass)) {
  $flag = FALSE;
}
// データベース選択
else if (!mysql_select_db($dbName, $link)) {
  $flag = FALSE;
}
// 文字エンコードの指定(PHP5以降かつMySQL 4.1以降)
else if (!mysql_set_charset('utf8', $link)) {
  $flag = FALSE;
}

if ($flag == TRUE) {
# SQL文を作成します。
  $sql = sprintf("SELECT * FROM example WHERE id = '%d' OR language = '%s'",
                 mysql_real_escape_string('1'), mysql_real_escape_string('Ruby')
                );
  echo '<pre>';
# クエリを実行します。
  $query = mysql_query($sql, $link);
# クエリ結果を数値添え字配列で取得します。
  echo "数値添え字配列で出力します。\n";
  while ($row = mysql_fetch_array($query, MYSQL_NUM)) {
    print_r(h($row));
  }
  echo "\n";

# クエリを実行します。
  $query = mysql_query($sql, $link);
# クエリ結果をカラム名をキーとした連想配列で取得します。
  echo "カラム名をキーとした連想配列で出力します。\n";
  while ($row = @mysql_fetch_array($query, MYSQL_ASSOC)) {
    print_r(h($row));
  }
  echo "\n";

# クエリの実行します。
  $query = mysql_query($sql, $link);
# クエリ結果をMYSQL_NUM、MYSQL_ASSOCの両方の配列で取得します。
  echo "数値添え字配列とカラム名をキーとした連想配列の両方を出力します。\n";
  while ($row = mysql_fetch_array($query, MYSQL_BOTH)) {
    print_r(h($row));
  }
  echo "\n";
  echo '</pre>';
} else {
  echo 'データベースエラー';
}

function h($var) { // HTMLでのエスケープ処理をする関数
  if (is_array($var)) {
    return array_map('h', $var);
  } else {
    return htmlspecialchars($var, ENT_QUOTES);
  }
}
?>
</body>
</html>