好了,所以我一直在研究Steam Web API,我将其中一个值存储在一个名为$steam64
的变量中。当我使用此代码片段将其插入到mysql数据库中时,它会插入一个与存储在变量中的整数不同的completley整数。$sql_query = "INSERT INTO users_info (steam64) VALUES ('$steam64')";
var_dump($steam64);
返回真实的int,因此也将其回显。不太确定这里发生了什么,我们将不胜感激。
最佳答案
可能是因为您将查询用双引号引起来,但是变量用单引号引起来,因此将其视为文字,并且如果该列为int,则将获得0。
试试这个:
$sql_query = "INSERT INTO users_info (steam64) VALUES ('" . $steam64 . "')";
另外,在被解雇之前,请确保先阅读SQL injection,以防您不清理直接发布到sql语句中的变量。
-更新-
根据您对“值(value)倾销”的评论;对于32位系统,您要插入的数字太大。 32位的最大值为 4,294,967,295 ,而64位的最大值为 18,446,744,073,709,551,615 。我建议将您的列转换为
varchar(100)
哈希而不是int,或切换到64位系统。 有关最大整数here和here的很棒的文章。