php - 如何使用 PHP 从 MySQL 列中正确检索 unsigned bigint?
问题描述
我不确定是 PHP 还是 MySQL 搞砸了我。
说,我有一个带有BIGINT UNSIGNED
列的表(让我们命名它flgs
)。我使用 PHP 从该表中读取数据,如下所示:
$query = "SELECT * FROM `$tbl_nm` ORDER BY `$colID` ASC";
$res = mysqli_query($link, $query);
if($res)
{
while($aRow = mysqli_fetch_assoc($res))
{
echo("flags=0x".dechex($aRow['flgs'])."<br>");
}
}
如果该flgs
列具有重置位 63 的值,那么我会得到正确的结果。但如果设置了 bit-63,则返回值为0x7fffffffffffffff
. 嗯?
例如,如果在数据库flgs
中设置为0x8000000000000000
,我上面的代码会打印:
标志=0x7ffffffffffffffff
为什么,PHP,为什么?
解决方案
推荐阅读
- node.js - Gmail 阻止 Nodemailer 发送邮件
- sql-server - 实体框架无法更新 SQL Server 数据库
- pyspark - Pyspark 字符串与 == 比较 RDkit 函数会引发错误
- powershell - 如何将 Azure DB 备份到本地磁盘?
- python - 使用数据相关的标记和颜色绘制 3d 散点图
- haskell - Haskell 函数 ["A","B"] [真,假]
- mysql - phpmyadmin:不同数据库中的 pma__ 表
- assembly - 如何使用 MARS/SPIM 系统调用在同一行打印数字和字符串?
- microservices - 与Kong相比,Krakend有多好?
- wordpress - 如何将我的网站从 cPanel 迁移到 Plesk?