为什么主键值返回字符串的is_int?

时间:2016-03-23 14:03:29

标签: php mysql

我想检查一个数据库中的成员id是否是一个整数,但是当我对这个数据使用is_int函数时,它返回false ..主键应该是int no?

$query = $sql->prepare("SELECT * FROM `blog` WHERE `categorie` = 'Dossier' ORDER BY `date_ajout` DESC LIMIT  " . $offset . "," . $page_result . "   ");
$query->bindValue(':offset', $offset, PDO::PARAM_INT);
$query->bindValue(':page_result', $page_result, PDO::PARAM_INT);
$query->execute();
$data = $query->fetchAll(PDO::FETCH_ASSOC);
foreach ($data as $key => $value) {
$id = is_int($value['id']);
    var_dump($id);
    echo $id;
}

2 个答案:

答案 0 :(得分:2)

为了让PHP正确表示来自MySQL的数据类型,您需要安装MySQL Native Driver(mysqlnd)。

链接:http://php.net/manual/en/book.mysqlnd.php

如果您没有安装本机驱动程序,PHP必须猜测类型是什么。最安全的类型是string

可以确定某事物的字符串表示是否实际为数字的函数是is_numeric

或者,正如您所做的那样,您可以使用intval($variable)(int)$variable将类型强制转换为整数。

答案 1 :(得分:0)

我找到了解决方案:

if ((is_int($value['id']) != true)) {
  $id = intval($value['id']);
}

现在,没关系