cari

Rumah  >  Soal Jawab  >  teks badan

Operasi pangkalan data untuk mendapatkan hasil tunggal: gunakan mysqli untuk menyambung ke pangkalan data

<p>Ini adalah kali pertama saya mencuba menggunakan mySQLi. Dalam kes gelung, saya telah melakukan ini. Keputusan gelung muncul, tetapi apabila saya cuba menunjukkan satu rekod, ia tersekat. Berikut ialah kod gelung kerja. </p> <pre class="brush:php;toolbar:false;"><?php //Sambung ke pangkalan data $hostname="localhost"; $database="mydbname"; $username="root"; $password=""; $conn = mysqli_connect($nama hos, $nama pengguna, $kata laluan, $pangkalan data); ?> <?php $query = "PILIH ssfullname, ssemail DARI pengguna PESANAN OLEH ssid"; $result = mysqli_query($conn, $query); $num_results = mysqli_num_rows($result); ?> <?php /*Gelung setiap baris dan paparkan rekod*/ untuk($i=0; $i<$num_results; $i++) { $row = mysqli_fetch_assoc($result); ?> Nama:<?php print $row['sssfullname']; <br /> E-mel: <?php print $row['ssemail'] ?> <br /><br /> <?php // gelung akhir } ?></pra> <p>Bagaimanakah cara saya memaparkan satu rekod, sebarang rekod, nama atau e-mel, dari baris pertama atau di mana-mana sahaja, hanya satu rekod, bagaimana saya boleh melakukannya? Dalam kes rekod tunggal, pertimbangkan untuk mengalih keluar bahagian gelung di atas dan biarkan kami memaparkan sebarang rekod tunggal tanpa menggunakan gelung. </p>
P粉111227898P粉111227898463 hari yang lalu563

membalas semua(2)saya akan balas

  • P粉554842091

    P粉5548420912023-08-22 19:56:41

    Gunakan mysqli_fetch_row(). Cuba kod berikut:

    $query = "SELECT ssfullname, ssemail FROM userss WHERE user_id = ".$user_id;
    $result = mysqli_query($conn, $query);
    $row   = mysqli_fetch_row($result);
    
    $ssfullname = $row['ssfullname'];
    $ssemail    = $row['ssemail'];

    balas
    0
  • P粉010967136

    P粉0109671362023-08-22 19:34:43

    Tidak perlu menggunakan gelung apabila hanya satu hasil yang diperlukan. Dapatkan baris secara langsung.

    • Jika anda perlu mendapatkan keseluruhan baris data sebagai tatasusunan bersekutu:

      $row = $result->fetch_assoc();
    • Jika anda hanya memerlukan satu nilai, bermula dengan PHP 8.2:

      $value = $result->fetch_column();
    • Atau untuk versi lama:

      $value = $result->fetch_row()[0] ?? false;

    Berikut ialah contoh lengkap kes penggunaan yang berbeza

    Pembolehubah digunakan dalam pertanyaan

    Apabila pembolehubah perlu digunakan dalam pertanyaan, penyata praproses mesti digunakan. Sebagai contoh, katakan kita mempunyai pembolehubah $id:

    PHP >= 8.2

    // 获取单行
    $sql = "SELECT fullname, email FROM users WHERE id=?";
    $row = $conn->execute_query($query, [$id])->fetch_assoc();
    
    // 如果只需要一个值
    $sql = "SELECT count(*) FROM users WHERE id=?";
    $count = $conn->execute_query($query, [$id])->fetch_column();

    Versi lama PHP:

    // 获取单行
    $query = "SELECT fullname, email FROM users WHERE id=?";
    $stmt = $conn->prepare($query);
    $stmt->bind_param("s", $id);
    $stmt->execute();
    $result = $stmt->get_result();
    $row = $result->fetch_assoc();
    
    // 如果只需要一个值
    $query = "SELECT count(*) FROM userss WHERE id=?";
    $stmt = $conn->prepare($query);
    $stmt->bind_param("s", $id);
    $stmt->execute();
    $result = $stmt->get_result();
    $count = $result->fetch_row()[0] ?? false;

    Penjelasan terperinci tentang proses di atas boleh didapati dalam artikel saya. Sebab mengapa proses ini mesti diikuti dijelaskan dalam Soalan yang terkenal ini.

    Tiada pembolehubah dalam pertanyaan

    Dalam kes anda, tiada pembolehubah digunakan dalam pertanyaan, anda boleh menggunakan query() kaedah:

    $query = "SELECT fullname, email FROM users ORDER BY ssid";
    $result = $conn->query($query);
    // 如果需要一个数组
    $row = $result->fetch_assoc();
    // 或者如果只需要一个值
    $value = $result->fetch_row()[0] ?? false;

    balas
    0
  • Batalbalas