PHPチュートリアル

PHPホーム PHPイントロ PHPインストール PHP構文 PHPコメント PHP変数 PHPエコー/印刷 PHPデータ型 PHP文字列 PHP番号 PHP数学 PHP定数 PHP演算子 PHP If ... Else ... Elseif PHPスイッチ PHPループ PHP関数 PHP配列 PHPスーパーグローバル PHP正規表現

PHPフォーム

PHPフォーム処理 PHPフォームの検証 PHPフォームが必要 PHPフォームのURL / Eメール PHPフォームの完了

PHP Advanced

PHPの日付と時刻 PHPインクルード PHPファイルの処理 PHPファイルのオープン/読み取り PHPファイルの作成/書き込み PHPファイルのアップロード PHPクッキー PHPセッション PHPフィルター PHPフィルターアドバンスト PHPコールバック関数 PHP JSON PHPの例外

PHPOOP _

PHPOOPとは PHPクラス/オブジェクト PHPコンストラクター PHPデストラクタ PHPアクセス修飾子 PHPの継承 PHP定数 PHP抽象クラス PHPインターフェース PHPの特性 PHP静的メソッド PHPの静的プロパティ PHP名前空間 PHPIterables

MySQLデータベース

MySQLデータベース MySQLコネクト MySQL Create DB MySQLテーブルの作成 MySQLの挿入データ MySQLは最後のIDを取得します MySQL Insert Multiple MySQLを準備しました MySQL Select Data MySQL Where MySQL Order By MySQLデータの削除 MySQLアップデートデータ MySQL制限データ

PHP XML

PHPXMLパーサー PHPSimpleXMLパーサー PHPSimpleXML-取得 PHP XMLExpat PHP XML DOM

PHP -AJAX

AJAXイントロ AJAX PHP AJAXデータベース AJAX XML AJAXライブ検索 AJAXポール

PHPの

PHPの例 PHPコンパイラ PHPクイズ PHP演習 PHP証明書

PHPリファレンス

PHPの概要 PHP配列 PHPカレンダー PHPの日付 PHPディレクトリ PHPエラー PHP例外 PHPファイルシステム PHPフィルター PHP FTP PHP JSON PHPキーワード PHP Libxml PHPメール PHP数学 PHPその他 PHP MySQLi PHPネットワーク PHP出力制御 PHP正規表現 PHP SimpleXML PHPストリーム PHP文字列 PHP変数の処理 PHPXMLパーサー PHP Zip PHPタイムゾーン

PHP Connect to MySQL


PHP 5以降は、以下を使用してMySQLデータベースを操作できます。

  • MySQLi拡張機能(「i」は改善を意味します)
  • PDO(PHPデータオブジェクト)

以前のバージョンのPHPは、MySQL拡張機能を使用していました。ただし、この拡張機能は2012年に廃止されました。


MySQLiまたはPDOを使用する必要がありますか?

短い答えが必要な場合は、「好きなものは何でも」になります。

MySQLiとPDOの両方に利点があります。

PDOは12の異なるデータベースシステムで動作しますが、MySQLiはMySQLデータベースでのみ動作します。

したがって、別のデータベースを使用するためにプロジェクトを切り替える必要がある場合、PDOを使用するとプロセスが簡単になります。接続文字列といくつかのクエリを変更するだけです。MySQLiでは、コード全体(クエリを含む)を書き直す必要があります。

どちらもオブジェクト指向ですが、MySQLiは手続き型APIも提供しています。

どちらもプリペアドステートメントをサポートしています。プリペアドステートメントはSQLインジェクションから保護し、Webアプリケーションのセキュリティにとって非常に重要です。


MySQLiとPDOの両方の構文でのMySQLの例

この章と次の章では、PHPとMySQLを操作する3つの方法を示します。

  • MySQLi(オブジェクト指向)
  • MySQLi(手続き型)
  • PDO

MySQLiのインストール

LinuxおよびWindowsの場合:php5 mysqlパッケージがインストールされると、ほとんどの場合、MySQLi拡張機能が自動的にインストールされます。

インストールの詳細については、http: //php.net/manual/en/mysqli.installation.phpにアクセスしてください。


PDOのインストール

インストールの詳細については、http: //php.net/manual/en/pdo.installation.phpにアクセスしてください。



MySQLへの接続を開く

MySQLデータベースのデータにアクセスする前に、サーバーに接続できる必要があります。

例(MySQLiオブジェクト指向)

<?php
$servername = "localhost";
$username = "username";
$password = "password";

// Create connection
$conn = new mysqli($servername, $username, $password);

// Check connection
if ($conn->connect_error) {
  die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully";
?>

上記のオブジェクト指向の例に注意してください。

$ connect_errorは、PHP5.2.9および5.3.0まで壊れていました。5.2.9および5.3.0より前のバージョンのPHPとの互換性を確保する必要がある場合は、代わりに次のコードを使用して

ください  。}


例(MySQLi手続き型)

<?php
$servername = "localhost";
$username = "username";
$password = "password";

// Create connection
$conn = mysqli_connect($servername, $username, $password);

// Check connection
if (!$conn) {
  die("Connection failed: " . mysqli_connect_error());
}
echo "Connected successfully";
?>

例(PDO)

<?php
$servername = "localhost";
$username = "username";
$password = "password";

try {
  $conn = new PDO("mysql:host=$servername;dbname=myDB", $username, $password);
  // set the PDO error mode to exception
  $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  echo "Connected successfully";
} catch(PDOException $e) {
  echo "Connection failed: " . $e->getMessage();
}
?>

注:上記のPDOの例では、データベース(myDB)も 指定していますPDOに接続するには、有効なデータベースが必要です。データベースが指定されていない場合、例外がスローされます。

ヒント: PDOの大きな利点は、データベースクエリで発生する可能性のある問題を処理するための例外クラスがあることです。try {}ブロック内で例外がスローされた場合、スクリプトは実行を停止し、最初のcatch(){}ブロックに直接流れます。


接続を閉じる

スクリプトが終了すると、接続は自動的に閉じられます。前に接続を閉じるには、次を使用します。

MySQLiオブジェクト指向:

$conn->close();

MySQLi手続き型:

mysqli_close($conn);

PDO:

$conn = null;