13,005
回編集
編集の要約なし |
|||
5行目: | 5行目: | ||
== MySQLの接続・切断 == | == MySQLの接続・切断 == | ||
==== MySQLの接続 ==== | ==== MySQLの接続 ==== | ||
MySQLへ接続するには、<code> | MySQLへ接続するには、<code>mysqli_connect</code>関数を使用する。<br> | ||
<br> | <br> | ||
resource | resource mysqli_connect(string host, string username, string passwd, string dbname [, int port [, string socket ]]) | ||
MySQLサーバへ接続または再利用する。 | MySQLサーバへ接続または再利用する。 | ||
引数: | 引数: | ||
host 接続先のMySQLサーバを指定する。 | |||
<ホスト名またはIPアドレス>:<ポート番号>のように、ポート番号を指定することが可能であり、 | |||
ホスト名またはIPアドレスでは、:/path/to/socketのようにソケットへのパスを指定することも可能である。 | |||
<ホスト名またはIPアドレス>または<ホスト名またはIPアドレス>:<ポート番号>を指定する場合、 | |||
MySQLクライアントライブラリはそれをオーバーライドして、ローカルソケット(Windowsでは名前付きパイプ)に接続する。 | |||
username ユーザ名 | username ユーザ名 | ||
22行目: | 23行目: | ||
password パスワード | password パスワード | ||
dbname 接続するデータベース名を指定する。 | |||
port 接続するMySQLサーバーのポート番号を指定する。 | |||
socket 使用するソケットを指定する。 | |||
戻り値: | 戻り値: | ||
MySQLサーバへの接続オブジェクトを返す。 | |||
<br> | <br> | ||
以下の例では、MySQLサーバへ接続している。<br> | 以下の例では、MySQLサーバへ接続している。<br> | ||
<syntaxhighlight lang="php"> | <syntaxhighlight lang="php"> | ||
$ | <?php | ||
// データベースへの接続に必要な変数を指定 | |||
$host = 'localhost'; // 以下の指定方法も可能 | |||
// localhost:3307(ホスト名とポート番号) | |||
// 127.0.0.1:3307(IPアドレスとポート番号) | |||
// /tmp/mysql(ソケットのみ) | |||
$username = 'root'; | |||
$passwd = 'root'; | |||
$dbname = 'mydb'; | |||
// データベースへ接続 | |||
$link = mysqli_connect($host, $username, $passwd, $dbname); | |||
// 接続チェック | |||
if(!$link) | |||
{ | |||
die('データベースの接続に失敗しました。'); | |||
} | |||
echo "データベースの接続に成功しました! \n"; | |||
// データベースの接続を閉じる | |||
mysqli_close($link); | |||
?> | |||
</syntaxhighlight> | </syntaxhighlight> | ||
<br><br> | <br><br> | ||
==== MySQLの切断 ==== | ==== MySQLの切断 ==== | ||
MySQLへの接続を切断するには、<code> | MySQLへの接続を切断するには、<code>mysqli_close</code>関数を使用する。<br> | ||
<br> | <br> | ||
bool | bool mysqli_close(mysqli link_identifier]) | ||
link_identifierが指すMySQLへの非持続的リンクを閉じる。 | link_identifierが指すMySQLへの非持続的リンクを閉じる。 | ||
51行目: | 72行目: | ||
引数: | 引数: | ||
link_identifier | link_identifier mysqli_connect関数の戻り値のリンクIDを指定する。 | ||
戻り値: | 戻り値: | ||
MySQLの切断に成功する場合はtrue、失敗する場合はfalseを返す。 | |||
<br> | <br> | ||
以下の例では、MySQLへの接続を明示的に切断している。<br> | 以下の例では、MySQLへの接続を明示的に切断している。<br> | ||
<syntaxhighlight lang="php"> | <syntaxhighlight lang="php"> | ||
$ | $host = 'localhost'; | ||
$username = 'root'; | |||
$passwd = 'root'; | |||
$dbname = 'mydb'; | |||
// データベースへ接続 | |||
$link = mysqli_connect($host, $username, $passwd, $dbname); | |||
// ...MySQLのCRUD処理 | // ...MySQLのCRUD処理 | ||
mysqli_close($link); | |||
</syntaxhighlight> | </syntaxhighlight> | ||
<br><br> | <br><br> | ||
==== エラー処理 ==== | ==== エラー処理 ==== | ||
MySQLに対する処理でエラーが発生する場合、<code> | MySQLに対する処理でエラーが発生する場合、<code>mysqli_error</code>関数を使用して、エラーメッセージを取得することができる。<br> | ||
<br> | <br> | ||
string | string mysqli_error(mysqli link_identifier]) | ||
直近のMySQL関数からのエラー文字列を返す。 | 直近のMySQL関数からのエラー文字列を返す。 | ||
MySQLのバックエンドのエラーは警告が発生しないため、 | MySQLのバックエンドのエラーは警告が発生しないため、 代わりに、mysqli_error関数を使用してエラー文字列を取得する。 | ||
引数: | 引数: | ||
78行目: | 105行目: | ||
戻り値: | 戻り値: | ||
直近のMySQL関数からのエラー文字列を返す。 | |||
エラーが発生していない場合は、空文字列を返す。 | |||
<br> | <br> | ||
以下の例では、mysqli_connect関数でエラーが発生した場合にエラーメッセージを取得している。<br> | |||
<syntaxhighlight lang="php"> | <syntaxhighlight lang="php"> | ||
$ | $host = 'localhost'; | ||
$username = 'root'; | |||
$passwd = 'root'; | |||
$dbname = 'mydb'; | |||
// データベースへ接続 | |||
$link = mysqli_connect($host, $username, $passwd, $dbname); | |||
if(!$link) | if(!$link) | ||
{ | { | ||
print( | print(mysqli_error()); | ||
} | } | ||
// ...MySQLに対するCRUD処理 | // ...MySQLに対するCRUD処理 | ||
mysqli_close($link); | |||
</syntaxhighlight> | </syntaxhighlight> | ||
<br> | <br> | ||
97行目: | 132行目: | ||
exit関数およびdie関数の詳細は、[[PHPの基礎 - PHPの終了処理]]を参照すること。<br> | exit関数およびdie関数の詳細は、[[PHPの基礎 - PHPの終了処理]]を参照すること。<br> | ||
<syntaxhighlight lang="php"> | <syntaxhighlight lang="php"> | ||
$ | $host = 'localhost'; | ||
$username = 'root'; | |||
$passwd = 'root'; | |||
$dbname = 'mydb'; | |||
// データベースへ接続 | |||
$link = mysqli_connect($host, $username, $passwd, $dbname); | |||
if(!$link) | if(!$link) | ||
{ | { | ||
die('接続失敗です。'. | die('接続失敗です。'.mysqli_error()); | ||
} | } | ||
// ...MySQLに対するCRUD処理 | // ...MySQLに対するCRUD処理 | ||
mysqli_close($link); | |||
</syntaxhighlight> | </syntaxhighlight> | ||
<br> | <br> | ||
111行目: | 153行目: | ||
<syntaxhighlight lang="php"> | <syntaxhighlight lang="php"> | ||
<?php | <?php | ||
$ | $host = 'localhost'; | ||
$username = 'root'; | |||
$passwd = 'root'; | |||
$dbname = 'mydb'; | |||
// データベースへ接続 | |||
$link = mysqli_connect($host, $username, $passwd, $dbname); | |||
if(!$link) | if(!$link) | ||
{ | { | ||
die('接続失敗です。'. | die('接続失敗です。'.mysqli_error()); | ||
} | } | ||
121行目: | 169行目: | ||
// ...MySQLに対するCRUD処理 | // ...MySQLに対するCRUD処理 | ||
$close_flag = | $close_flag = mysqli_close($link); | ||
if($close_flag) | if($close_flag) |