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

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

WBOY
WBOYoriginal
2023-08-30 08:29:10880parcourir

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>

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!

Déclaration:
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