Maison >développement back-end >tutoriel php >Comment puis-je obtenir des fonctionnalités similaires à « mysql_fetch_array » de MySQL en utilisant PDO en PHP ?
Utilisation de PDO pour récupérer des tableaux de résultats en PHP
Dans le but d'atténuer les vulnérabilités d'injection SQL, vous cherchez à utiliser PDO au lieu de Connexions MySQL. Vous vous demandez si votre script PDO offrira des fonctionnalités similaires à votre précédent script MySQL, vous présentez un dilemme.
Scripts originaux :
Script 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 régulier Script :
$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);
Fonctionnalité de récupération PDO
Pour obtenir une fonctionnalité similaire à la boucle while que vous avez utilisée avec votre script MySQL habituel, vous pouvez utiliser le PDOStatement Méthode .fetchAll. Voici comment :
$sth = $dbh->prepare("SELECT name, colour FROM fruit"); $sth->execute(); $result = $sth->fetchAll(\PDO::FETCH_ASSOC);
Tableau de résultats :
Cela renverra un tableau de tableaux associatifs, chaque sous-tableau contenant une ligne de l'ensemble de résultats. Par exemple, l'exemple de code suivant produirait le résultat suivant :
print_r($result);
Sortie :
Array ( [0] => Array ( [NAME] => pear [COLOUR] => green ) [1] => Array ( [NAME] => watermelon [COLOUR] => pink ) )
Cette structure de tableau vous permet d'accéder facilement aux données de chaque ligne, garantissant des fonctionnalités comparables. à votre script MySQL précédent.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!