Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Mendapatkan Lajur Integer dan Numerik sebagai Jenis Aslinya daripada MySQL dalam PHP?

Bagaimana untuk Mendapatkan Lajur Integer dan Numerik sebagai Jenis Aslinya daripada MySQL dalam PHP?

Mary-Kate Olsen
Lepaskan: 2024-12-07 05:25:16
asal
260 orang telah melayarinya

How to Retrieve Integer and Numeric Columns as Their Native Types from MySQL in PHP?

Bagaimanakah cara saya mengembalikan lajur integer dan angka daripada MySQL sebagai integer dan angka dalam PHP?

Apabila bekerja dengan pangkalan data MySQL dalam PHP, memastikan bahawa lajur integer dan berangka diambil dan diwakili dengan betul adalah penting. Sambungan PDO dalam PHP menyediakan cara untuk melakukan ini, tetapi ia boleh menjadi masalah jika pemacu asli MySQL tidak digunakan.

Mengapa lajur integer dikembalikan sebagai rentetan

Pemandu asli MySQL tidak mempunyai sokongan untuk mengembalikan nilai angka sebagai integer dan angka. Ini bermakna, secara lalai, semua lajur diambil semula sebagai rentetan. Walaupun dengan bendera PDO PDO::ATTR_STRINGIFY_FETCHES ditetapkan kepada palsu, tingkah laku pemandu tidak berubah.

Cara membetulkannya

Penyelesaiannya ialah bertukar kepada mysqlnd pemandu untuk PHP. Pemacu ini menyokong mengembalikan nilai integer dan angka dalam jenis PHP aslinya.

Pemasangan

Untuk memasang pemacu mysqlnd pada Ubuntu, anda boleh menggunakan langkah berikut:

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

Pengesahan

Untuk mengesahkan bahawa pemacu mysqlnd adalah sedang digunakan, jalankan php -i. Outputnya kini harus memasukkan "mysqlnd" dalam bahagian pdo_mysql.

Tetapan PDO

Pastikan tetapan PDO berikut ditetapkan dengan betul:

  • PDO::ATTR_EMULATE_PREPARES sepatutnya false
  • PDO::ATTR_STRINGIFY_FETCHES sepatutnya palsu

Nilai yang dikembalikan

Dengan pemacu mysqlnd, jenis pulangan berikut digunakan:

  • Jenis titik terapung (Apung, DOUBLE): PHP terapung
  • Jenis integer (INTEGER, INT, SMALLINT, TINYINT, MEDIUMINT, BIGINT): Integer PHP
  • Jenis Titik Tetap (PERPULUHAN, ANGKA): rentetan

Contoh

Selepas bertukar kepada pemacu mysqlnd, anda akan dapat mendapatkan semula nilai integer dan angka dengan betul:

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

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

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

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Lajur Integer dan Numerik sebagai Jenis Aslinya 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