PHPからMySQLを使う
アセンブラの魔女 ⧫ MySQL ⧫ PHPからMySQLを使う
アセンブラの魔女 ⧫ MySQL ⧫ PHPからMySQLを使う
PHP5(Windows)の設定
データベースアクセスの簡単な例
mysql_connect(MySQLに接続)
mysql_select_db(データベースを選択)
mysql_query(クエリの送信)
mysql_num_rows(結果セットから行の数を調べる)
mysql_fetch_array(結果の行を取得して内部ポインタを次の行に進める)  PHP4ではデフォルトでMySQLを使えるようになっていましたが、PHP5では拡張機能を有効にしなければ(デフォルトでは)PHPからMySQLを使うことができません、MySQLを有効にするには、php.iniの設定を以下のように修正する必要があります。  extension_dirのPHP5のext/フォルダへのパスを設定します。デフォルトでは"./"に設定されていると思いますが、これではext/フォルダを参照できません。PHP5をc:\php5にインストールした場合、以下のように修正します。
extension_dir = "C:\php5\ext"
 デフォルトでは、php_mysql.dllとphp_mysqli.dllの設定は無効(コメントアウト)になっていますので、行頭の「;」を削除して有効にします。
extension=php_mysql.dll
extension=php_mysqli.dll
 さらにシステムがlibmysql.dllを見つけることができるようにします。システムフォルダーにコピーするという方法もありますが、この方法は推奨されないようです。代わりに、libmysql.dllへのパスを環境変数PATHに追加する方法が望ましいと思います。  以下はMySQLにログインして、データベース books を選択、テーブル bookstbl の全レコードの id フィールドの値を表示するPHPスクリプトの例です。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
<title></title>
</head>

<body>

<?php
$hostName = "localhost";
$userName = "root";
$password = "password";

$db = mysql_connect( $hostName, $userName, $password );

mysql_select_db( 'books' );

$sql        = "select * from bookstbl";
$result     = mysql_query( $sql );
$num_rows   = mysql_num_rows( $result );

if( $num_rows == 0 ) 
{
  echo "<p>データがありません";
}
else 
{
  while ( $row = mysql_fetch_array( $result ) ) 
  {
    echo "<p>";
    echo $row{ "id" };
  }
}
?>

</body>
</html>
 PHPからMySQLで管理しているデータベースにアクセスするには、まずMySQLに接続(ログイン)する必要があります。以下はMySQLにログインして、データベース books を選択、テーブル bookstbl の全レコードの id フィールドの値を表示するPHPスクリプトの例です。それには、mysql_connect関数を使います。
mysql_connect( host_name, user_name, password );
使用例
$hostName = "localhost";
$userName = "root";
$password = "password";

$db = mysql_connect( $hostName, $userName, $password );
 基本的な使い方では、パラメータにログインするユーザーのホスト名、ユーザー名、パスワードを指定します。この関数はMySQL リンクID を返します(失敗した場合はfalseを返す)。  mysql_select_db関数はMySQLのUSE構文に相当する関数で、操作対象のデータベースを選択します。
mysql_select_db( database_name );
使用例
mysql_select_db( 'books' );
 この関数は成功または失敗をブール値で返します。  mysql_query関数はMySQLのクエリを送信するために用いられます。
mysql_query( query );
 パラメータqueryは文字列型で、最後はセミコロンで終わらなければなりません。この関数は複数のクエリを送信することはできません。 使用例
$sql    = "select * from bookstbl";
$result = mysql_query( $sql );
 この関数の値はクエリの内容によって異なります。失敗するとfalseを返します。 SELECT, SHOWなどの結果(結果セットと言います)を返す必要のあるクエリではPHPリソースを返します。返されたPHPリソースにアクセスするためには、PHPリソースを関連関数に渡します。たとえば、以下のような関数を使います。
mysql_num_rows関数SELECT文を含むクエリによって返された行の数を調べる
mysql_affected_rows関数DELETE, INSERTなどのクエリで変更された行の数を調べる
 それ以外のINSERT, UPDATE, DELETEなどの結果セットを返さないクエリでは、trueまたはfalseのみを返します。  mysql_num_rows関数はmysql_query関数の返した結果セットから行数を調べるために用いられます。この関数は成功すると行数を返し、失敗するとfalseを返します。
mysql_num_rows ( result );
使用例
mysql_select_db( 'books' );

$sql      = "select * from bookstbl";
$result   = mysql_query( $sql );
$num_rows = mysql_num_rows( $result );
 mysql_fetch_array関数は、結果の行を連想配列や添字配列で返し(取得)、内部ポインタを次の行に進めます。行が存在しない場合はfalseを返します。
mysql_fetch_array ( result [, result_type );
 resultにはmysql_query関数から返された結果セット(resource型)を指定します。 result_typeはmysql_fetch_array関数の返す値の型を指定するために用いられます(省略可能)。result_typeには以下の値を指定することができます。
MYSQL_BOTH 連想配列と添字配列の両方が取得されます(result_typeオプション省略時の動作)
MYSQL_ASSOC 連想配列のみが取得されます(mysql_fetch_assoc関数と同等の動作)
MYSQL_NUM 添字配列のみが取得されます(mysql_fetch_row関数と同等の動作)

使用例
$sql        = "select * from bookstbl";
$result     = mysql_query( $sql );
$num_rows   = mysql_num_rows( $result );

if( $num_rows == 0 ) 
{
 echo "<p>データがありません";
}
else 
{
 while ( $row = mysql_fetch_array( $result ) ) 
 {
  echo "<p>";
  echo $row{ "id" };
 }
}
▼ Property
記事情報
datePublished2011-01-01
dateModified2018-06-27
authorアセンブラの魔女
headlinePHPからMySQLを使う方法に関する記事です
keywordsMySQL
keywordsPHP
publisher name= wiredFish, logo.name= wiredFish, logo.url= https://books-nekoya.jp/Programming/chigu-hagu-title-01.png size= 208 pixel x 50 pixel
image.url url= https://books-nekoya.jp/Programming/chigu-hagu-title-01.png , size= 208 pixel x 50 pixel