Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Memastikan Lajur Angka MySQL Kembali sebagai Integer dan Angka PHP?

Bagaimana untuk Memastikan Lajur Angka MySQL Kembali sebagai Integer dan Angka PHP?

Linda Hamilton
Linda Hamiltonasal
2024-12-08 06:44:10973semak imbas

How to Ensure MySQL Numeric Columns Return as PHP Integers and Numerics?

Mengembalikan Integer dan Lajur Angka daripada MySQL sebagai Integer PHP dan Angka

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:

  1. Alih keluar pemacu asli semasa: apt-get remove php5-mysql
  2. Pasang mysqlnd: apt-get install php5-mysqlnd
  3. Mulakan semula Apache: service apache2 restart

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:

  1. PDO::ATTR_EMULATE_PREPARES: Tetapkan ini kepada false untuk menambah baik prestasi dan elakkan isu yang berpotensi.
  2. PDO::ATTR_STRINGIFY_FETCHES: Lumpuhkan ini untuk menghalang pemandu daripada menghantar nilai angka kepada rentetan.

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn