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

Bagaimana saya bisa men-debug mengapa kueri MySQL paling sederhana mengembalikan false?

Pembaruan wajib :karena mysql ext tidak ada lagi, berikut adalah jawaban untuk dua API MySQL yang tersisa yang saya tulis di situs saya berdasarkan pengalaman menjawab 1000 pertanyaan di Stack Overflow:

Singkatnya, untuk mysqi baris berikut harus ditambahkan sebelum mysqli_connect() hubungi:

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

sedangkan untuk PDO mode kesalahan yang tepat harus diatur, misalnya

$pdo->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );

Pada ext mysql lama,

Untuk mendapatkan kesalahan dari mysql_query() anda harus menggunakan mysql_error() function.
Jadi selalu jalankan semua kueri Anda dengan cara ini, setidaknya sampai Anda mengembangkan penangan kueri yang lebih canggih:

$query = "SELECT * FROM 'users'";
$result = mysql_query($query) or trigger_error(mysql_error()." ".$query);

masalah dengan kueri Anda saat ini adalah 'users' bagian. Tanda kutip tunggal harus digunakan untuk membatasi string sedangkan untuk pengidentifikasi Anda harus menggunakan backticks:

SELECT * FROM `users`

Untuk melihat kesalahan ini selama pengembangan, tambahkan baris ini di bagian atas kode Anda untuk memastikan Anda dapat melihat setiap kesalahan yang terjadi

ini_set('display_errors',1);
error_reporting(E_ALL);

di server produksi, namun, nilai pada baris pertama harus diubah dari 1 menjadi 0



  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 bergabung dengan dua tabel dengan id yang dipisahkan koma

  2. Sequelize limit dan offset penempatan yang salah dalam kueri

  3. Kesalahan fatal:Panggilan ke fungsi anggota bind_param() di boolean

  4. SQL UPDATE dengan sub-query yang mereferensikan tabel yang sama di MySQL

  5. Load balancing dengan ProxySQL Untuk Percona XtraDB Cluster