Dapatkan satu hasil daripada pangkalan data menggunakan mysqli
P粉156532706
P粉156532706 2023-08-21 22:42:04
0
2
429
<p>Ini adalah kali pertama saya mencuba menggunakan mySQLi. Saya telah melakukan ini dalam kes gelung. Keputusan gelung muncul, tetapi apabila saya cuba menunjukkan satu rekod, ia tersekat. Di bawah ialah kod gelung, ia berfungsi. </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>Bagaimana saya boleh memaparkan satu rekod, sebarang rekod seperti nama atau e-mel, dari baris pertama atau apa sahaja, hanya satu rekod, bagaimana saya boleh melakukan ini? Dalam kes rekod tunggal, pertimbangkan untuk mengalih keluar bahagian gelung di atas dan biarkan kami memaparkan sebarang rekod tunggal tanpa menggunakan gelung. </p>
P粉156532706
P粉156532706

membalas semua(2)
P粉930448030

Gunakan mysqli_fetch_row(). Cuba ini:

$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'];
P粉265724930

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 untuk pertanyaan

Apabila menggunakan pembolehubah dalam pertanyaan, penyata yang disediakan 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 untuk digunakan dalam pertanyaan, anda boleh menggunakan kaedah query():

$query = "SELECT fullname, email FROM users ORDER BY ssid";
$result = $conn->query($query);
// 如果需要一个数组
$row = $result->fetch_assoc();
// 或者如果只需要一个值
$value = $result->fetch_row()[0] ?? false;
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan