PHPからMySQLに接続(MySQLi) | PHPやります!PHPでスクリプト/CGI作ります!

PHPからMySQLに接続(MySQLi)

PHPからMySQLにアクセスするために、MySQLiを使います。

MySQL改良拡張モジュールということですが、簡単に言うとMySQLに簡単にアクセスするためのクラス群ということにしておきます。

今回使うのは、
mysqli::mysqli()
mysqli::prepare()
mysqli::close()

mysqli_stmt::bind_param()
mysqli_stmt::execute()
mysqli_stmt::store_result()
mysqli_stmt::bind_result()
mysqli_stmt::fetch()
mysqli_stmt::free_result()
mysqli_stmt::close()

です。では簡単に説明。

1.mysqli::mysqli
新規にMySQLサーバへの接続をオープンする。

2.mysqli::prepare
実行するためのSQLステートメントを準備する。

3.mysqli::close
事前にオープンしているデータベース接続を閉じる。


4.mysqli_stmt::bind_param
プリペアdステートメントのパラメータに変数をバインドする。

5.mysqli_stmt::execute
プリペアドクエリを実行する。

6.mysqli_stmt::store_result
プリペアドステートメントから結果を転送する。

7.mysqli_stmt::bind_result
結果を保存するため、プリペアドステートメントに変数をバインドする。

8.mysqli_stmt::fetch
プリペアドステートメントから結果を取得し、バインド変数に格納する。

9.mysqli_stmt::free_result
指定したステートメントハンドルの結果を格納したメモリを開放する。

10.mysqli_stmt::close
プリペアドステートメントを閉じる。


使い方の例

$mysqli = new mysqli("localhost", "ID", "PASSWORD", "db_webprogrammer");
if ($mysqli->connect_error)
{
exit();
}

$stmt = $mysqli->prepare("select NAME from tbl_user where MAIL = ?");
if ($stmt)
{
$stmt->bind_param("s", $mail);
$stmt->execute();
$stmt->store_result();
$stmt->bind_result($name);
$stmt->fetch();
$stmt->free_result();
$stmt->close();
}

$mysqli->close();

?>
ほぼ使い方は変わりません。このコードの意味が分かればDBにアクセスするのも難しくないハズです。

次は、セッションと一緒にログイン機能を作ってみます。