Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Penyata Disediakan untuk PHP: Mengenalpasti Masalah

Penyata Disediakan untuk PHP: Mengenalpasti Masalah

WBOY
WBOYasal
2023-08-30 08:29:10852semak imbas

PHP 的准备语句:识别问题

Kenyataan yang disediakan PHP (untuk akses pangkalan data) adalah hebat. Bukan sahaja ia membantu melindungi pertanyaan pangkalan data anda, tetapi ia lebih berkesan terutamanya untuk produk yang lebih besar. Walau bagaimanapun, terdapat beberapa isu yang nampaknya menjadikan kaedah ini kurang fleksibel daripada yang kami mahukan. Untuk satu, kita perlu menggunakan kaedah bind_result dan lulus dalam bilangan pembolehubah tertentu. Tetapi apa yang berlaku apabila kod ini berada dalam kelas dan kami tidak segera mengetahui berapa banyak pembolehubah yang perlu dilalui? Nasib baik, ada penyelesaian! Saya akan menunjukkan kepada anda apa itu dalam tutorial video hari ini.

Ahli premium: Muat turun video ini (mesti log masuk)

Langgan halaman YouTube kami untuk menonton semua tutorial video!


Kod akhir

<?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>

Atas ialah kandungan terperinci Penyata Disediakan untuk PHP: Mengenalpasti Masalah. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn