PHP が MySQL に接続する
PDOとは何ですか?
はデータベースを操作するメソッド、pdoはデータベースを操作する機能をpdoクラスにカプセル化し、その際のセキュリティ検証のみを行うものです。
MySQLi と PDO を使用する必要がありますか?
短い答えが必要な場合は、「使い慣れている方を使用してください」。 MySQLi と PDO には独自の利点があります。PDO は 12 の異なるデータベースで使用され、MySQLi は MySQL データベースのみを対象としています。 そのため、プロジェクトで複数のデータベース間を切り替える必要がある場合は、接続文字列と部門クエリ ステートメントのみを変更する必要があるように、PDO を使用することをお勧めします。 MySQLi では、別のデータベースを使用する場合、クエリを含むすべてのコードを書き直す必要があります。 どちらもオブジェクト指向ですが、MySQLi も API インターフェイスを提供します。 どちらも準備されたステートメントをサポートします。 プリペアド ステートメントは SQL インジェクションを防ぐことができ、Web プロジェクトのセキュリティにとって非常に重要です。 MySQLi と PDO は MySQL インスタンスに接続します この章と次の章では、次の 3 つの方法を使用して、MySQL を操作する PHP を示します: · MySQLi (オブジェクト指向) $mysqli = new mysqli ('localhost','username','password','database'); · PDO$pdo = new PDO("mysql:host=localhost;dbname=database", 'username', 'password' );MySQLi のインストール
Linux および Windows: php5 mysql ほとんどの場合、MySQLi 拡張機能はパッケージのインストール時に自動的にインストールされます。インストールの詳細については、以下を確認してください: http://php.net/manual/en/mysqli.installation.php
phpinfo() を通じてインストールが成功したかどうかを確認できます:PDO のインストール
インストールの詳細については、http://php.net/manual/en/pdo.installation.phpphpinfo(): を通じてインストールが成功したかどうかを確認できます。
MySQLに接続します
MySQLデータベースにアクセスする前に、まずデータベースサーバーに接続する必要があります:
インスタンス(MySQLi - オブジェクト指向)
$link = mysqli_connect ('localhost' , 'mysql_user', 'mysql_password');
3 つのパラメータは次のとおりです
• サーバーアドレス (ドメイン名、IP)
• データベースユーザー名 (root)
• データベースパスワード (空)
接続が成功した場合は、データベース接続を返します。それ以外の場合は false を返します (if 判定を使用して、接続が成功したかどうかをユーザーにプロンプトすることができます)
<?php $servername = "localhost"; $username = "username"; $password = "password"; // 创建连接 $conn = new mysqli($servername, $username, $password); // 检测连接 if ($conn->connect_error) { die("连接失败: " . $conn->connect_error); } echo "连接成功"; ?>
上記のオブジェクト指向の例では、$connect_error が PHP で追加されていることに注意してください。 5.2.9 および 5.3.0 。以前のバージョンとの互換性が必要な場合は、次のコード置換を使用してください:
// 接続を検出
if (mysqli_connect_error()) {
die("データベース接続に失敗しました: " . mysqli_connect_error());
}
Instance (MySQLi - プロセス用)
<?php $servername = "localhost"; $username = "username"; $password = "password"; // 创建连接 $conn = mysqli_connect($servername, $username, $password); // 检测连接 if (!$conn) { die("Connection failed: " . mysqli_connect_error()); } echo "连接成功"; ?>
インスタンス (PDO)
<?php $servername = "localhost"; $username = "username"; $password = "password"; try { $conn = new PDO("mysql:host=$servername;dbname=myDB", $username, $password); echo "连接成功"; } catch(PDOException $e) { echo $e->getMessage(); } ?>
上記の PDO インスタンスではデータベース (myDB) を指定していることに注意してください。 PDO は、接続プロセス中にデータベース名を設定する必要があります。指定しない場合、例外がスローされます。
データベースを選択します
$db_selected = mysqli_select_db($link, 'db_name');
2つのパラメータ
• mysql_connectによって返されるデータベース接続
• データベース名
が返されます成功した場合は true 、失敗した場合は false を返します
接続時にデータベースを直接選択することもできます:
$link = mysqli_connect('localhost', 'mysql_user', 'mysql_password', 'db_name');
接続を閉じます
スクリプトの実行後、接続は自動的に閉じられます。次のコードを使用して接続を閉じることもできます:
Instance (MySQLi - オブジェクト指向)
$conn->close();
Instance (MySQLi - Procedural)
mysqli_close($conn) ;
例 (PDO)
$conn = null;
フレンドリーな注意事項:
プログラムを書くときは、ずさんで慎重にならないことを忘れないでください。これは、プログラムを書く上で本当に最大のタブーです。データテーブル名の間違った名前や書き込みによって、エラーやその他の不明なエラーが発生する可能性があります。したがって、今後コードを書くときは、良いコードを書いて混乱を避けるために、傲慢になったり傲慢になったりしないように注意する必要があります。