我有一个名为customers_id的mysql数据库表列,其数据类型为int(11)。
使用
echo gettype($customers['customers_id']);
我得到字符串作为结果和
echo is_int($customers['customers_id']) ? 'yes' : 'no';
返回no。
为什么整数值以字符串形式返回?
更新:我使用PDO
作为access_layer。
答案 0 :(得分:1)
它作为字符串从PDO返回。 is_int()
不会测试为true,但是如果使用is_numeric()
,如果它是一串数字,它将测试为真。
$myint = '1';
echo is_int($myint) ? 'yes' : 'no'; //returns 'no'
echo is_numeric($myint) ? 'yes' : 'no'; //return 'yes'
答案 1 :(得分:-3)
你可以做的一件事是
var_dump($customers); die();
将为您提供从数据库返回的所有类型。在过去使用PDO时,我没有遇到字符串返回它们应该是INT的问题。
作为最后的手段,您可以随时将其转换为INT。
(!is_int($customers['customers_id'])) ? (int)$customers['customers_id'] : $customers['customers_id'] ;