Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Semua nilai ='s' dalam tabel dalam kesalahan PHP

Mengapa var_dump(stmt['likedFour']); kembalikan 's' :

Karena Anda kehilangan tanda dolar sebelum stmt , jadi PHP mengira Anda mencoba mengakses konstanta stmt bukannya variabel $stmt . Karena Anda belum mendefinisikan konstanta itu, itu akan kembali ke asumsi Anda mencoba mengakses string "stmt" . Untuk string, indeks harus numerik sehingga PHP seharusnya memberi Anda peringatan "Illegal string offset" tetapi akan mencoba memperbaikinya untuk Anda dengan mentransmisikan 'likedFour' ke bilangan bulat (yang akan menjadi 0 ).

Oleh karena itu, var_dump(stmt['likedFour']) artinya sama persis dengan var_dump("stmt"[0]) ke PHP, itulah sebabnya Anda mendapatkan output "s" :karakter pertama dari "stmt" .

Cara mendapatkan hasil yang Anda sebenarnya ingin:

Anda harus terlebih dahulu mengambil baris yang dihasilkan dari kueri Anda. $stmt adalah mysqli_stmt objek yang Anda gunakan untuk mengeksekusi kueri dan mengambil hasilnya, sebenarnya bukan hasil itu sendiri.

Untuk menyelamatkan diri Anda dari sakit kepala di masa mendatang, selalu periksa apakah kueri Anda berhasil dieksekusi sebelum mencoba mengambil hasilnya. Kemudian ambil baris datanya:

$success = $stmt->execute();
if (!$success) {
    echo $stmt->error;
} else if ($stmt->num_rows == 0) {
    echo 'No results matching that username';
} else {
    $result = $stmt->get_result();
    $row = $result->fetch_assoc();
    var_dump($row['likedFour']);
}

Jika Anda tidak tahu berapa banyak baris yang akan dikembalikan, ulangi baris demi baris agar aman:

$result = $stmt->get_result();
while ($row = $result->fetch_assoc()) {
    var_dump($row['likedFour']);
}



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL - Ubah string tanggal menjadi tipe tanggal di tempat?

  2. Cara Meningkatkan MySQL 5.5 ke 5.6 di Ubuntu 14.04

  3. Masukkan KE MySQL DARI tabel lain

  4. Melakukan perbandingan LIKE pada bidang INT

  5. Pilih bagian dari MySQL Blob Field