Isu:
Hasil pertanyaan mengembalikan semua lajur sebagai jenis rentetan , walaupun mempunyai lajur integer dan angka yang ditakrifkan dalam pangkalan data.
Kerumitan:
Cabaran timbul daripada pengehadan pelaksanaan pemandu. Sesetengah pemacu tidak menyokong mengembalikan jenis angka sebagai integer PHP atau angka, yang membawa kepada ketidakpadanan antara jenis data pangkalan data dan perwakilan PHP.
Penyelesaian:
Kunci untuk menyelesaikan masalah ini isu terletak pada memastikan pemacu mysqlnd digunakan untuk PHP. mysqlnd ialah pemacu asli MySQL yang menyediakan sokongan yang diperlukan untuk mengembalikan jenis angka dengan betul.
Cara Memasang mysqlnd:
Untuk sistem Ubuntu:
Menyemak jika mysqlnd Digunakan:
Selepas pemasangan, jalankan php -i untuk mengesahkan bahawa mysqlnd sedang digunakan. Cari baris berikut dalam output:
PDO Driver for MySQL => enabled Client API version => mysqlnd 5.0.10 - 20111026 -
Tetapan PDO Penting:
Untuk memastikan pengendalian nilai angka yang betul, dua tetapan PDO adalah penting:
Selepas menetapkan bendera ini, hasil pertanyaan anda kini akan mengembalikan lajur integer dan angka seperti yang diharapkan. Berikut ialah contoh nilai yang dikembalikan:
object(stdClass)[915] public 'integer_col' => int 1 public 'double_col' => float 1.55 public 'float_col' => float 1.5 public 'decimal_col' => string '1.20' (length=4) public 'bigint_col' => string '18446744073709551615' (length=20)
Atas ialah kandungan terperinci Bagaimana untuk Memastikan Lajur Angka MySQL Kembali sebagai Integer dan Angka PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!