Saya menggunakan $wpdb->update
untuk memperbarui tabel kustom yang saya miliki di database saya. Ketika saya var_dump
hasilnya kembali:
int(0)
Jadi saya mencoba $wpdb->print_error()
melihat apa yang salah. Namun, itu tidak menunjukkan apa-apa. Saya juga mencoba $wpdb->show_errors()
, tetapi sekali lagi tidak menunjukkan apa-apa.
Dokumen wpdb tidak menjelaskan secara rinci tentang cara menggunakan fungsi-fungsi ini, jadi saya tidak yakin apakah saya menggunakannya dengan benar. Tetapi mengapa hasil memperbarui tabel mengembalikan 0, dan tidak menunjukkan kesalahan?
SHOW FULL COLUMNS FROM ``
dalam kasus sayaTampilkan kesalahan:
$wpdb->show_errors = true
menunjukkan kesalahan secara otomatis, jikaWP_DEBUG
diatur ketrue
.$wpdb->suppress_errors = false
berhenti menekan kesalahan.Multisite memerlukan perawatan khusus
Penanganan keluaran
The
$wpdb->update()
metode memiliki tiga output yang berbeda. Untuk memeriksa terhadap itu, Anda harus menyimpan hasil besarbesaran var:$result = $wpdb->update( /* ... */ );
.Menangani skenario tersebut:
false === $result
: Gagal0 === $result
: Berhasil, tetapi tidak ada pembaruan0 < $result
: SuksesOutput kelas
$wpdb->last_error
akan menampilkan kesalahan terakhir, jika ada.$wpdb->last_query
akan membantu Anda menampilkan kueri terakhir (di mana kesalahan terjadi). Pada dasarnya sama denganarray_pop( $wpbd->queries );
.Penting (keamanan) Catatan
Tolong JANGAN tambahkan kode ini di situs langsung. Terutama tidak jika plugin caching terlibat. Ini dapat mengekspos data penting terkait DB ke pengunjung !
Jika Anda tidak dapat melakukan sebaliknya: selalu bungkus kode Anda dalam pernyataan bersyarat untuk mencegah publik menghadapi hasil debug!
Mengekspos
$wpdb
objek juga dapat mengekspos nama pengguna dan kata sandi database Anda!sumber
Respons nol berarti nol baris yang terpengaruh, yang berbeda dari kesalahan.
Sulit mengatakannya tanpa melihat permintaan Anda mengapa tidak ada baris yang diperbarui. Satu alat debug yang dapat Anda coba adalah pengaturan "
SAVEQUERIES
" ke true di file wp-config.php Anda.Kemudian setelah berjalan permintaan Anda, cobalah
var_dump
ing$wpdb->queries
.sumber
sumber
Coba ini sebelum permintaan Anda:
atau mungkin ini setelah kueri Anda:
sumber