Medan Integer MySQL Dikembalikan sebagai Rentetan dalam PHP
Isu ini timbul apabila mendapatkan semula data daripada pangkalan data MySQL menggunakan PHP. Tanpa mengira jenis data yang ditakrifkan dalam pangkalan data, data sentiasa dikembalikan sebagai rentetan dalam PHP secara lalai. Percanggahan ini boleh membingungkan, terutamanya apabila menjangkakan medan integer berkelakuan sedemikian.
Dalam kes khusus anda, dengan ID pengguna medan pangkalan data diisytiharkan sebagai INT(11), data diambil menggunakan pertanyaan:
"SELECT userid FROM DB WHERE name='john'"
Untuk mengendalikan keputusan, anda menggunakan:
$row=$result->fetch_assoc(); $id=$row['userid'];
Namun, apabila menyemak jenis data $id menggunakan echo gettype($id);, ia mengembalikan "rentetan" dan bukannya "integer".
Penyelesaian
Untuk menyelesaikan isu ini, PHP menyediakan kaedah untuk menukar data rentetan yang diambil kembali kepada format integer. Anda boleh menggunakan kod berikut:
$id = (int) $row['userid'];
Sebagai alternatif, anda juga boleh menggunakan fungsi intval():
$id = intval($row['userid']);
Dengan melakukan penukaran ini, anda memastikan bahawa pembolehubah $id adalah dikenali dengan betul sebagai jenis data integer, membenarkan pengendalian dan operasi yang sesuai sebagai integer.
Atas ialah kandungan terperinci Mengapa Medan Integer MySQL Saya Dikembalikan sebagai Rentetan dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!