当前位置: 首页 > 面试题库 >

将不正确的Integer(2147483647)插入MySQL?

陈奇希
2023-03-14
问题内容

好的,所以我一直在研究Steam Web
API,我将其中一个值存储在名为的变量中$steam64。当我使用此代码片段将其插入到mysql数据库中时,它会插入一个与存储在变量中不同的整数。

$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注入有所了解,以防您不清理直接发布到sql语句中的变量。

-更新-

根据您对“价值倾销”的评论;对于32位系统,您要插入的数字太大。32位的最大值为 4,294,967,295 ,而64位的最大值为
18,446,744,073,709,551,615 。我建议将您的列转换为varchar(100)哈希而不是int,或切换到64位系统。
约最大整数文章在这里,并在这里。



 类似资料:
  • 尽管遵循了网络上的所有示例,但我很难让@MapsId工作。 这是我的设置: pom.xml: DDL脚本: ProjectId.java: Project.java: 订阅.java: 当我进行插入时,会发生以下错误: Hibernate:插入t。项目(name,subscription_id)值(?,?)2014年7月20日11:06:59193 org.hibernate.engine.jdb

  • 问题内容: 我是学生,这是家庭作业…表格在那里,但没有插入数据。 感谢您的任何建议 SQL语句: 问题答案: 您在其中没有子句(“ Ledonna”之后的子句) 请注意,如果您双击Management Studio中的错误消息,它将带您进入代码的问题位。

  • 我想使用以下格式的多维数组:value[n][],其中n是问题编号。使用此新设置,您将得到以下输入字段: 请注意,选定的值编码在value属性中。name属性只包含值所属的问题。 因此,上述输入说明的是: 我想在下面的“问题”和“答案”数据库表中插入这些详细信息: 问题表: 答案表: 现在,我已经尝试编写下面的mysqli/php代码来将这些值插入数据库,但是我收到了错误,并且在想要实现我想要实现

  • 问题内容: 可以这样插入一行: 这种方法会自动注释掉任何特殊字符。 如何一次插入多行? 我需要实现这一点: 我可以只使用js字符串运算符手动编译此类行,但是随后我需要以某种方式添加特殊字符转义符。 问题答案: 下面这篇文章:性能提升,从PG-承诺库,其建议的方法: 完全按照您的情况使用的示例: 它也将与一系列对象一起工作: 更新1 有关通过单个查询的高性能方法,请参见使用pg-promise进行多

  • 我的连接是这样设置的: 当tyring向表中添加一行时,我会遇到以下错误: 我正在插入数以千计的记录,当文本包含\xf0(即不正确的字符串值总是以\xf0开头)时,我总是得到这个错误。 列的排序规则是UTF8_GENERAL_CI。