レコードを削除する
<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) { echo '<p>データベースの中身:</p>'; # 一覧表示させるためのSQL文を作成します。 $sql = 'SELECT * FROM example'; # クエリを実行します。 $query = mysql_query($sql, $link); # クエリ結果を添字配列で取得します。 while ($row = mysql_fetch_array($query, MYSQL_ASSOC)) { echo h($row['id']) . ': ' . h($row['language']) . "<br />\n"; } echo '<br />'; # DELETEするSQL文を作成します。 $sql = sprintf("DELETE FROM example WHERE id = '%d'", mysql_real_escape_string('4')); # クエリを実行します。 $query = mysql_query($sql, $link); # DELETE処理するSQL文を表示します。 echo '<p>作成したSQL文: ' . $sql . '</p>'; echo '<p>データベースの中身:</p>'; # 一覧表示させるためのSQL文を作成します。 $sql = 'SELECT * FROM example'; // クエリを実行する。 $query = mysql_query($sql, $link); # クエリ結果を添字配列で取得します。 while ($row = mysql_fetch_array($query, MYSQL_ASSOC)) { echo h($row['id']) . ': ' . h($row['language']) . '<br />'; } } else { echo 'データベースエラー'; } function h($string) { // HTMLでのエスケープ処理をする関数 return htmlspecialchars($string, ENT_QUOTES); } ?> </body> </html>
レコードを更新する
<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) { echo '<p>データベースの中身:</p>'; # 一覧表示させるためのSQL文を作成します。 $sql = 'SELECT * FROM example'; // クエリを実行する。 $query = mysql_query($sql, $link); # クエリ結果を添字配列で取得します。 while ($row = mysql_fetch_array($query, MYSQL_ASSOC)) { echo h($row['id']) . ': ' . h($row['language']) . "<br />\n"; } echo '<br />'; # INSERTするSQL文を作成します。 $sql = sprintf("UPDATE example SET language = '%s' WHERE id = '%d'", mysql_real_escape_string('PHP5'), mysql_real_escape_string('1')); # クエリを実行します。 $query = mysql_query($sql, $link); # 作成したSQL文を表示します。 echo '<p>作成したSQL文: ' . h($sql) . '</p>'; echo '<p>データベースの中身:</p>'; # 一覧表示させるためのSQL文を作成します。 $sql = 'SELECT * FROM example'; # クエリを実行します。 $query = mysql_query($sql, $link); # クエリ結果を添字配列で取得します。 while ($row = mysql_fetch_array($query, MYSQL_ASSOC)) { echo h($row['id']) . ': ' . h($row['language']) . "<br />\n"; } } else { echo 'データベースエラー'; } function h($string) { // HTMLでのエスケープ処理をする関数 return htmlspecialchars($string, ENT_QUOTES); } ?> </body> </html>
レコードをオブジェクトとして取得する
<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('3'), mysql_real_escape_string('PHP') ); # クエリを実行します。 $query = mysql_query($sql, $link); echo '<br />'; # クエリ結果からオブジェクトを取得します。 while ($row = mysql_fetch_object($query)) { echo h($row->id) . ': ' . h($row->language) . '<br />'; } } else { echo 'データベースエラー'; } function h($string) { // HTMLでのエスケープ処理をする関数 return htmlspecialchars($string, ENT_QUOTES); } ?> </body> </html>
複数行のレコードを取得する
<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>
1行のレコードを取得する
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>1行の結果を取得したい(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文を作成します。LIMIT句で返される結果を1行以下にします。 $sql = sprintf("SELECT * FROM example WHERE id = '%d' AND language = '%s' LIMIT 1", mysql_real_escape_string('1'), mysql_real_escape_string('PHP')); # クエリを実行します。 $query = mysql_query($sql, $link); # クエリ結果を数値添え字配列(MYSQL_NUM)で取得します。 if ($row = mysql_fetch_array($query, MYSQL_NUM)) { echo '<pre>'; print_r(h($row)); 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>
レコードを作成する
<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("INSERT INTO example (id, language) VALUES ('%d', '%s')", mysql_real_escape_string('6'), mysql_real_escape_string('JavaScript')); # クエリを実行します。 $query = mysql_query($sql, $link); echo '<p>追加したレコードのID:</p>'; # 追加したauto_incrementのIDを取得します。 echo mysql_insert_id($link); } else { echo 'データベースエラー'; } ?> </body> </html>
上記を利用するためのSQL
CREATE TABLE IF NOT EXISTS `example` ( `id` int(2) NOT NULL auto_increment, `language` varchar(10), PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; INSERT INTO `example` (`id`, `language`) VALUES (1, 'PHP'), (2, 'Java'), (3, 'Ruby'), (4, 'Python'), (5, 'Perl');
MySQLに接続する
<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'; # MySQLデータベースに接続します。 if ($link = mysql_connect($dbServer, $dbUser, $dbPass)) { // 接続成功 echo 'MySQLに接続しました。<br />'; # MySQLデータベースから切断します。 mysql_close($link); echo 'MySQLから切断しました。<br />'; } else { // 接続失敗 echo 'MySQLに接続できませんでした。<br />'; } ?> </body> </html>