Rumah > pembangunan bahagian belakang > tutorial php > Bagaimana untuk Memastikan Jenis Data Integer dan Berangka Dikembalikan dengan Betul daripada MySQL dalam PHP?

Bagaimana untuk Memastikan Jenis Data Integer dan Berangka Dikembalikan dengan Betul daripada MySQL dalam PHP?

Susan Sarandon
Lepaskan: 2024-11-27 08:23:13
asal
498 orang telah melayarinya

How to Ensure Integer and Numeric Data Types Are Returned Correctly from MySQL in PHP?

Cara Mengambil Integer dan Jenis Data Berangka sebagai Integer dan Angka dalam PHP daripada MySQL

Apabila menanyakan MySQL menggunakan PHP, perkara biasa ditemui isu di mana lajur integer dan angka dikembalikan sebagai jenis rentetan. Walaupun mengkonfigurasi "PDO::ATTR_STRINGIFY_FETCHES" kepada palsu, masalah ini berterusan.

Penyelesaian

  1. Semak Pemacu mysqlnd:
    Pastikan anda menggunakan pemacu mysqlnd dan bukannya pemacu MySQL asli. Dalam output "php -i" PHP, cari bahagian pdo_mysql. Ketiadaan "mysqlnd" menunjukkan bahawa pemacu asli sedang digunakan.
  2. Pasang Pemacu mysqlnd (Ubuntu):
    Alih keluar pemacu asli dengan "apt-get remove php5- mysql" dan pasang pemacu mysqlnd dengan "apt-get install php5-mysqlnd."
  3. Sahkan Penggunaan mysqlnd:
    Selepas memulakan semula Apache, semak sama ada "mysqlnd" disebut dalam bahagian pdo_mysql output "php -i" PHP.
  4. Konfigurasikan PDO:
    Pastikan bahawa atribut PDO berikut ditetapkan:

    • PDO::ATTR_EMULATE_PREPARES: false
    • PDO::ATTR_STRINGIFY_FETCHES: false

Jenis Dikembalikan

Apabila menggunakan pemacu mysqlnd, nilai lajur integer dan angka dikembalikan sebagai jenis data PHP berikut:

  • Jenis titik terapung (Apung, BERGANDA): terapung
  • Jenis integer (INTEGER, INT, SMALLINT, TINYINT, MEDIUMINT, BIGINT): integer
  • Jenis Titik Tetap (PERPULUHAN, NUMERIC): rentetan (mungkin istimewa kes)

Contoh

$pdo->setAttribute(PDO::ATTR_STRINGIFY_FETCHES, false);
$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);

$stmt = $pdo->prepare('SELECT * FROM table');
$stmt->execute();

$result = $stmt->fetch(PDO::FETCH_OBJ);

echo $result->integer_col; // int
echo $result->double_col; // float
echo $result->decimal_col; // string
echo $result->bigint_col; // string (since value exceeds 64-bit signed int)
Salin selepas log masuk

Output:

1
1.55
1.20
18446744073709551615
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Memastikan Jenis Data Integer dan Berangka Dikembalikan dengan Betul daripada MySQL 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