Rumah > pembangunan bahagian belakang > tutorial php > Bagaimanakah Saya Boleh Memastikan Lajur Angka dan Integer MySQL Dikembalikan sebagai Jenis Data yang Betul dalam PHP?

Bagaimanakah Saya Boleh Memastikan Lajur Angka dan Integer MySQL Dikembalikan sebagai Jenis Data yang Betul dalam PHP?

Mary-Kate Olsen
Lepaskan: 2024-12-05 15:15:10
asal
336 orang telah melayarinya

How Can I Ensure MySQL Numeric and Integer Columns Are Returned as the Correct Data Type in PHP?

Menukar Lajur Angka dan Integer MySQL kepada Integer dalam PHP

Gambaran Keseluruhan Masalah

Pertanyaan PHP selalunya mengembalikan semua lajur sebagai rentetan, walaupun apabila berurusan dengan integer atau nilai angka dalam MySQL. Ini boleh menjadi masalah apabila mengendalikan data dengan keperluan format tertentu, seperti output JSON yang digunakan oleh berbilang perkhidmatan.

Menolak Salah Tanggapan Biasa

Walaupun sesetengah sumber mendakwa bahawa pengembalian jenis angka tidak mungkin, ini adalah tidak sepenuhnya benar. Salah tanggapan berikut boleh diketepikan:

  • Jenis Casting: Menghantar nilai secara manual dalam kod adalah tidak cekap dan boleh menimbulkan ketidakkonsistenan.
  • Taip Longgar: Penaipan longgar PHP bukanlah penyelesaian yang boleh dipercayai kerana data mungkin tidak disengajakan ditukar kepada rentetan.
  • Had Pemacu: Pemacu asli MySQL pada Linux tidak menyokong sepenuhnya jenis angka yang dikembalikan. Walau bagaimanapun, terdapat penyelesaian untuk memastikan pengendalian yang betul.

Penyelesaian

Kunci untuk menyelesaikan isu ini ialah menggunakan pemacu mysqlnd untuk PHP. Tidak seperti pemacu asli, mysqlnd menyokong pengembalian jenis angka untuk integer (INTEGER, INT, SMALLINT, TINYINT, MEDIUMINT, BIGINT) dan lajur titik terapung berketepatan dua kali (DOUBLE).

Memasang dan Mengesahkan mysqlnd

Untuk mengesahkan sama ada anda menggunakan mysqlnd, jalankan php -i. Jika bahagian pdo_mysql menyebut "mysqlnd," pemandu hadir. Jika tidak, ikuti langkah berikut untuk memasangnya:

Ubuntu:

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

Sahkan Kehadiran: Selepas pemasangan, php -i kini sepatutnya memaparkan versi mysqlnd dalam bahagian pdo_mysql.

PDO Tetapan

Selain itu, pastikan tetapan PDO berikut ditetapkan dengan betul:

  • PDO::ATTR_EMULATE_PREPARES sepatutnya palsu
  • PDO::ATTR_STRINGIFY_FETCHES hendaklah palsu

Nilai Dipulangkan Jenis

  • Lajur Apung dan DOUBLE dikembalikan sebagai PHP terapung.
  • Lajur INTEGER dikembalikan sebagai integer PHP.
  • Lajur PERPULUHAN dan NUMERIC dikembalikan sebagai rentetan.

Contoh

Dengan mysqlnd dan tetapan PDO yang betul, anda kini boleh menanyakan jadual MySQL dan mendapatkan nilai angka dalam format yang dijangkakan:

$result = $pdo->query('SELECT * FROM table');
$row = $result->fetch(PDO::FETCH_OBJ);

echo $row->integer_col; // 1 (integer)
echo $row->double_col; // 1.55 (float)
echo $row->decimal_col; // '1.20' (string)
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memastikan Lajur Angka dan Integer MySQL Dikembalikan sebagai Jenis Data yang Betul dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan