Menggunakan PDO untuk Mengambil Tatasusunan Hasil dalam PHP
Dalam usaha untuk mengurangkan kelemahan suntikan SQL, anda sedang berusaha untuk menggunakan PDO dan bukannya biasa sambungan MySQL. Tertanya-tanya sama ada skrip PDO anda akan menawarkan kefungsian yang serupa dengan skrip MySQL anda sebelum ini, anda mengemukakan dilema.
Skrip Asal:
Skrip PDO:
$pdo = new PDO('mysql:host=$host; dbname=$database;', $user, $pass); $stmt = $pdo->prepare('SELECT * FROM auction WHERE name = :name'); $stmt->bindParam(':name', $_GET['searchdivebay']); $stmt->execute(array(':name' => $name);
MySQL biasa Skrip:
$dbhost = @mysql_connect($host, $user, $pass) or die('Unable to connect to server'); @mysql_select_db('divebay') or die('Unable to select database'); $search = $_GET['searchdivebay']; $query = trim($search); $sql = "SELECT * FROM auction WHERE name LIKE '%" . $query . "%'"; if(!isset($query)){ echo 'Your search was invalid'; exit; } //line 18 $result = mysql_query($trim); $numrows = mysql_num_rows($result); mysql_close($dbhost);
Fungsi Pengambilan PDO
Untuk mencapai kefungsian yang serupa dengan gelung while yang anda gunakan dengan skrip MySQL biasa anda, anda boleh menggunakan PDOStatement .fetchAll kaedah. Begini caranya:
$sth = $dbh->prepare("SELECT name, colour FROM fruit"); $sth->execute(); $result = $sth->fetchAll(\PDO::FETCH_ASSOC);
Susun Hasil:
Ini akan mengembalikan tatasusunan tatasusunan bersekutu, dengan setiap subtatasusunan mengandungi baris daripada set hasil. Sebagai contoh, sampel kod berikut akan menghasilkan output berikut:
print_r($result);
Output:
Array ( [0] => Array ( [NAME] => pear [COLOUR] => green ) [1] => Array ( [NAME] => watermelon [COLOUR] => pink ) )
Struktur tatasusunan ini membolehkan anda mengakses data dari setiap baris dengan mudah, memastikan kefungsian yang setanding kepada skrip MySQL anda sebelum ini.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencapai Fungsi Serupa dengan `mysql_fetch_array` MySQL Menggunakan PDO dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!