我想检查一个数据库中的成员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;
}
答案 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']);
}
现在,没关系