Maison > développement back-end > tutoriel php > Déclarations préparées pour PHP : identifier le problème

Déclarations préparées pour PHP : identifier le problème

WBOY
Libérer: 2023-08-30 08:30:01
original
899 Les gens l'ont consulté

PHP 的准备语句:识别问题

Les instructions préparées par PHP (pour l'accès à la base de données) sont excellentes. Non seulement ils aident à protéger vos requêtes de base de données, mais ils sont particulièrement plus efficaces pour les produits plus volumineux. Cependant, certains problèmes semblent rendre ces méthodes moins flexibles que nous le souhaiterions. D’une part, nous devons utiliser la méthode bind_result et transmettre un nombre spécifique de variables. Mais que se passe-t-il lorsque ce code est dans une classe et que l’on ne sait pas immédiatement combien de variables passer ? Heureusement, il existe une solution ! Je vais vous montrer ce que c'est dans le didacticiel vidéo d'aujourd'hui.

Membres Premium : Téléchargez cette vidéo (vous devez vous connecter)

Abonnez-vous à notre page YouTube pour regarder tous les tutoriels vidéo !


Code final

<?php

function read()
{
   $parameters = array();
   $results = array();

   $mysql = new mysqli('localhost', 'root', 'root', 'db') or die('There was a problem connecting to the database');
   $stmt = $mysql->prepare('SELECT body FROM posts') or die('Problem preparing query');
   $stmt->execute();

   $meta = $stmt->result_metadata();

   while ( $field = $meta->fetch_field() ) {

     $parameters[] = &$row[$field->name]; 
   }

   call_user_func_array(array($stmt, 'bind_result'), $parameters);

   while ( $stmt->fetch() ) {
      $x = array();
      foreach( $row as $key => $val ) {
         $x[$key] = $val;
      }
      $results[] = $x;
   }

   return $results;


}

$results = read();
?>
<!DOCTYPE html>

<html lang="en">
<head>
   <meta charset="utf-8">
   <title>untitled</title>
</head>
<body>
<?php foreach ($results as $row) : ?>

   <p> <?php echo $row['body']; ?> </p>
<?php endforeach; ?>
</body>
</html>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal