小さい頃はエラ呼吸

いつのまにやら肺で呼吸をしています。


PHP5.5とMySQLを接続するならmysqliを使ったほうが良いよ。

はじめに

PHPとMySQLを使ったアプリケーションを作成する際に、多くのサイトではmysql_connectを使ったサンプルが載っています。
だけど、mysql_connectはPHP5.5からは非推奨の関数に指定されているため、今後はmysqliクラスを使ったほうが良いよという話。
f:id:replication:20140701015219p:plain

いきなりはじめるPHP~ワクワク・ドキドキの入門教室~
谷藤賢一
リックテレコム
売り上げランキング: 2,149

mysqliを使ってMySQLに接続する

はじめに、MySQLとの接続部分です。

$mysqli = new mysqli(DBサーバのアドレス, ユーザID, パスワード);
if ($mysqli -> connect_errno) {
  print('<p>データベースへの接続に失敗しました。</p>' . $mysqli -> connect_error);
  exit();
}

続いて、データベースを選択します。以下の例では、hogeデータベースを使用します。

$mysqli -> select_db('hoge');
}

文字コードの指定。以下の例では、クライアントのデフォルト文字セットをUTF-8にします。

$mysqli->set_charset("utf-8");

SQLの実行は、以下のようなコードを書きます。ユーザからの入力がある部分は、real_escape_string関数でエスケープを行います。

// 入力値のサニタイズ
$userid = $mysqli -> real_escape_string($_POST["xxx"]);
//  クエリの実行
$query = "SELECT * FROM db_user WHERE name = '" . $userid . "'"; 
$result = $mysqli -> query($query);
if (!$result) {
  print('クエリーが失敗しました。' . $mysqli -> error);
  $mysqli -> close();
  exit();
}

レコードの取得は、fetch_assoc関数を使って1レコードずつ取り出しを行います。

// レコードの取り出し
while ($row = $result -> fetch_assoc()) {
  $pw = $row['password'];
}
// 結果セットのクローズ
$result->free();

最後に、MySQLとの接続をクローズします。

$mysqli -> close();