Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Berhijrah daripada Fungsi MySQL yang Dihentikan kepada PDO untuk MySQL dan MSSQL?
Tukar fungsi MySQL kepada PDO untuk MySQL dan MSSQL
Penyingkiran fungsi MySQL dan alternatif
Pelanjutan fungsi MySQL ditamatkan dan akan dialih keluar dalam keluaran akan datang. Adalah disyorkan untuk menggunakan MySQLi atau sambungan PDO_MySQL sebagai alternatif. MySQLi dan PDO menyediakan keselamatan dan fungsi yang lebih baik berbanding dengan fungsi MySQL.
Melaksanakan PDO
PDO (Objek Data PHP) ialah API berorientasikan objek untuk mengakses pangkalan data. Untuk menyambung ke pangkalan data menggunakan PDO, cipta contoh PDO baharu menggunakan pembina PDO.
Sambung ke MySQL
<code class="language-php">$dsn = 'mysql:dbname=databasename;host=127.0.0.1'; $user = 'dbuser'; $password = 'dbpass'; $dbh = new PDO($dsn, $user, $password);</code>
Sambung ke MSSQL
<code class="language-php">$dsn = 'sqlsrv:Server=127.0.0.1;Database=databasename'; $user = 'dbuser'; $password = 'dbpass'; $dbh = new PDO($dsn, $user, $password);</code>
Gunakan PDO untuk melaksanakan pertanyaan
PDO menggunakan pernyataan yang disediakan untuk mengelakkan kelemahan suntikan SQL. Kenyataan yang disediakan mentakrifkan pertanyaan SQL dengan ruang letak yang dinamakan atau diindeks untuk mewakili pembolehubah.
<code class="language-php">$SQL = 'SELECT ID, EMAIL FROM users WHERE user = :username'; $preparedStatement = $dbh->prepare($SQL);</code>
Ikat pembolehubah
Gunakan bindParam
atau bindValue
untuk mengikat nilai pada pernyataan yang disediakan.
<code class="language-php">$preparedStatement->bindParam(':username', $username);</code>
Lakukan pertanyaan
Laksanakan kenyataan yang disediakan untuk mendapatkan hasil.
<code class="language-php">$preparedStatement->execute();</code>
Dapatkan hasil
PDO menyediakan kaedah seperti fetch
dan fetchAll
untuk mendapatkan semula hasil sebagai tatasusunan.
<code class="language-php">while ($row = $preparedStatement->fetch()) { echo $row['ID']; echo $row['EMAIL']; }</code>
Gunakan kelas sambungan PDO
Anda boleh mencipta kelas sambungan PDO untuk memudahkan operasi pangkalan data.
<code class="language-php">class Database { protected $connection; public function __construct($dsn, $user, $password) { $this->connection = new PDO($dsn, $user, $password); } public function query($SQL) { return $this->connection->query($SQL); } public function prepare($SQL, $params = []) { $preparedStatement = $this->connection->prepare($SQL); $preparedStatement->execute($params); return $preparedStatement; } } // 使用方法: $db = new Database($dsn, $user, $password); $SQL = 'SELECT ID, EMAIL FROM users WHERE user = :username'; $result = $db->prepare($SQL, ['username' => $username]); while ($row = $result->fetch()) { echo $row['ID']; echo $row['EMAIL']; }</code>
Atas ialah kandungan terperinci Bagaimana untuk Berhijrah daripada Fungsi MySQL yang Dihentikan kepada PDO untuk MySQL dan MSSQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!