Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为什么主键值返回字符串上的_int?_Php_Mysql - Fatal编程技术网

Php 为什么主键值返回字符串上的_int?

Php 为什么主键值返回字符串上的_int?,php,mysql,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', $o

我想检查数据库中的成员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;
}
我找到了一个解决方案:

if ((is_int($value['id']) != true)) {
  $id = intval($value['id']);
}
现在,没事了

我找到了一个解决方案:

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

现在,没关系了

为了让PHP正确地表示来自MySQL的数据类型,您需要安装MySQL本机驱动程序(mysqlnd)

链接:

当您没有安装本机驱动程序时,PHP必须猜测其类型。最安全的类型是
string

可以确定某事物的字符串表示形式是否实际上是数字的函数是
是\u numeric


或者,正如您所做的那样,您可以使用
intval($variable)
(int)$variable

将类型强制为整数。为了让PHP正确表示来自MySQL的数据类型,您需要安装MySQL本机驱动程序(mysqlnd)

链接:

当您没有安装本机驱动程序时,PHP必须猜测其类型。最安全的类型是
string

可以确定某事物的字符串表示形式是否实际上是数字的函数是
是\u numeric


或者,正如您所做的那样,您可以使用
intval($variable)
(int)$variable

将类型强制为整数,您需要使用
是否为数字?注意:要测试变量是数字还是数字字符串(例如表单输入,它始终是字符串),必须使用
is_numeric()
var_dump($value['id'])
变量转储($id)你想在这里做的是一个
while
循环(不是foreach),在循环中,
if
并检查特定的行。大讨论:一般来说,不管表中定义的数据类型如何,PHP的MySQL驱动程序总是将行值作为字符串。你需要使用
是数字的吗?注意:要测试变量是数字还是数字字符串(例如表单输入,它始终是字符串),必须使用
is_numeric()
var_dump($value['id'])
变量转储($id)你想在这里做的是一个
while
循环(不是foreach),在循环中,
if
并检查特定的行。无意义的大讨论:)一般来说,不管表中定义的数据类型如何,PHP的MySQL驱动程序总是将行值作为字符串。哦,是的,我确实安装了
mysqlnd
。哦,是的,我确实安装了
mysqlnd