PHPでMySQLと接続

PHPスクリプトMySQLに接続

PHPスクリプトMySQLを制御します。最初は、PHPスクリプトを使ったMySQLサーバーへの接続と切断です。

実はPHPからMySQLに接続して操作する方法には、いろいろな種類があります。ここでは、最も簡単なmysql関数を使います。MySQLサーバーへの接続はmysql_connect,切断はmysql_close関数を使います。

関数 mysql_connect

書式 mysql_connect(サーバー名,ユーザー名,パスワード)

機能 MySQLに接続する

返り値 成功すると「MySQLリンクID」を、失敗するとFALSEを返す。

 

関数 mysql_close

書式 mysql_close(MySQLリンクID)

機能 MySQLから切断する

返り値 成功するとTRUEを、失敗するとFALSEを返す。

今回はMySQLiをPHPスクリプトで使います。

MySQLiとは「MySQL improved extension」の略で、PHPからMySQL/MariaDBデータベースを操作するためのインターフェースを提供する、PHP拡張機能です。
以前は「mysql_query」などのMySQLiがつかない)が使われていましたが、PHP5.5以降では非推奨となりました。
その代替えとなったのがMySQLiです。

<?PHP
$d = mysqli_connect("localhost","root","");
mysqli_close($d);
?>

mysql_conect関数は、データベースへの接続に成功すると「MySQLリンクID」を返します。上記では、これを変数$dに代入しています。「MySQLリンクID」はMySQLサーバーとの接続を識別するための値です。mysql_close関数で切断するときには、この「MySQLリンクID」を指定します。

・接続、切断に失敗したときの処理を加える

mysql_connect関数は、成功すると「MySQLリンクID」を、失敗するとFALSEを返します。FALSEのとき、接続に失敗したときの処理をしていません。このため接続に失敗すると「Warning:mysql_connect()...」と表示されるだけで、次の処理に進んでしましますWebアプリケーションの実行時、MySQLサーバーへの接続が失敗しているのにレコードの処理が始めっては困りますので、接続に失敗した場合、スクリプト全体の処理を停止するような仕組みを作っておきます。次は、接続・切断に失敗するとメッセージを表示して処理を停止するPHPスクリプトです。

<?php

$d = mysqli_connect("localhost","root","") or die("接続失敗");
print"接続成功<br>";
mysqli_close($d) or die("切断失敗");
print"切断成功";
?>

実行結果

f:id:mkyosuke:20191202140158p:plain

die()というのは、「()内を表示してスクリプトの実行を中止する」という関数です。データベースへの接続に成功すれば、mysql_connect関数は「MySQLリンクIDを$dに代入」します。これにorが付いているので、失敗した(FALSE)場合は実行されます。

データベースへの接続時の処理

MySQLリンクIDを$dに代入」する➡失敗したら(or)➡「接続失敗」と表示し終了(die)

接続に失敗すると「接続失敗」が表示し、スクリプト全体が終了します。つまり切断は行われません。接続成功すれば、引き続き次の行が実行され「”接続成功"」で成功のメッセージが表示します。同様に、mysql_close関数による切断でも、失敗すると「切断失敗」と表示され処理を停止します。

ちなみに、die()の代わりにexit()という関数をつかっても動作は同じ。die()とexit()は、同じプログラムを使っている。

・パスワードをどこに置くのか

上記のPHPスクリプトでは、パスワード等の情報を含むファイルが公開されるディレクトに置かれています。実際に運用するときは、パスワード等の情報の保管場所にも注意が必要です。重要な情報は、公開されないディレクトに別ファイルとして保管する必要があります。