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