PHPがデータベース(Mysql)に接続する3つの方法とその違い

序文:

php5.3バージョン以降、データベースに接続する方法は2つあります。1つはmysqliを介する方法、もう1つはPDOを介する方法です。また、mysqliを介してデータベースに接続する方法は、次の2つの状況に分けることができます。mysqli(オブジェクト指向) 、mysqli(プロセス指向)。
つまり、3つの方法:
1)mysqlに接続するPDO
2)データベースに接続するmysqli(オブジェクト指向)
3)データベースに接続するmysqli(プロセス指向)
(実際には、接続方法もあります:MySQL拡張機能を使用します。ただし、これは2012年以降、拡張機能は推奨されていません。)

PDO接続例

最初に、phpinfo()コマンド(デフォルトですでにインストールされているphp7を使用)を使用して、phpにPDOがインストールされているかどうかを確認できます。インストールされて
いない場合は、次のWebページを参照してください:http://php.net/manual/en/pdo。 Installation.php
ここに写真の説明を挿入
コード例:

<?php
$servername = "localhost";
$username = "root";
$password = "root";
try {
    
    
    $conn = new PDO("mysql:host=$servername;dbname=jtsys",
        $username, $password);
    echo "连接成功";
}
catch(PDOException $e)
{
    
    
    
    echo $e->getMessage();
}
?>

(使用する場合は、データベースのユーザー名とパスワード、および選択したデータベース名(dbname)を変更するように注意してください。

mysqli(オブジェクト指向)接続の例

最初に、phpinfo()コマンド(デフォルトですでにインストールされているphp7を使用)を使用して、phpにmysqliがインストールされているかどうかを確認できます。インストールされて
いない場合は、次のWebページを参照してください:http://php.net/manual/en/mysqli。 Installation.php
ここに写真の説明を挿入
コード例:

<?php
$servername = "localhost";
$username = "root";
$password = "root";
// 创建连接
$conn =
new mysqli($servername, $username, $password);
// 检测连接
if ($conn->connect_error) {
    
    
    die("连接失败: " . $conn->connect_error);
}
$dbname="jtsys";
mysqli_select_db($conn,$dbname);
echo "连接成功";
?>

データベースに接続するためのmysqli(プロセス指向)

コード例:

<?php
$servername = "localhost";
$username = "root";
$password = "root";
// 创建连接
$conn = mysqli_connect($servername, 
$username, $password);
// 检测连接
if (!$conn) {
    
    
    die("Connection 
failed: " . mysqli_connect_error());
}
$dbname="jtsys";
mysqli_select_db($conn,$dbname);
echo "连接成功";
?>

3つの違い:

1.接続を閉じる方法:
PDO:

$conn = null;

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

$conn->close();

MySQLi(プロセス指向):

mysqli_close($conn);
  • PDOは12の異なるデータベースで使用され、MySQLiはMySQLデータベースのみを対象としています。
  • プロジェクトで複数のデータベースを切り替える必要がある場合は、PDOを使用することをお勧めします。そのため、接続文字列と部門のクエリステートメントを変更するだけで済みます。MySQLiでは、別のデータベースがある場合、クエリを含むすべてのコードを書き直す必要があります。
  • どちらもオブジェクト指向ですが、MySQLiはAPIインターフェイスも提供します。
  • どちらも準備されたステートメントをサポートします。準備されたステートメントは、Webプロジェクトのセキュリティにとって非常に重要なSQLインジェクションを防ぐことができます。
    オブジェクト指向とプロセス指向のMySQLiの違い:
    多くのPHPプログラマーは、オブジェクト指向のbaiプログラミングに慣れていないため、mysqliクラスライブラリは、それらが使用するduメソッドを提供します。これは、mysql拡張機能を使用してmysqliにすばやく移行する一部のユーザーにとっても便利です。実際、mysqli_query()は、オブジェクト指向の呼び出しプロセスを内部的にカプセル化します。

おすすめ

転載: blog.csdn.net/qq_45273552/article/details/109385470