好了,所以我一直在研究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位系统。 有关最大整数herehere很棒的文章。

09-26 06:12