相关疑难解决方法(0)

MySQL中插入了不正确的整数(2147483647)?

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

$sql_query = "INSERT INTO users_info (steam64) VALUES ('$steam64')";

var_dump($steam64);返回真正的int,所以回显它.不太清楚这里发生了什么,任何帮助表示赞赏.

php mysql insert steam-web-api

36
推荐指数
6
解决办法
5万
查看次数

2147483647即使数据类型为VARCHAR,也会插入到DB字段中

这是我们一直在敲打近一个星期的事情.

发生了什么?

  • 在我们的应用程序中,我们有一个电话号码字段,它与数据类型为VARCHAR(25)的数据库字段有关.我们不是在使用INT,BIGINT.

  • 在表单提交上,我们将数据存储如下.

    1. $_POST

    2. 使用清理数据 filter_input(INPUT_POST, 'mobile', FILTER_SANITIZE_STRING);

    3. 使用mysqli->prepare插入数据到数据库,其中绑定-PARAMS也设置正确.此字段设置为使用"s"(字符串)进行映射.

    4. 然后将数据存储到DB中.

  • 现在我们在调试问题时将所有这些值记录在单独的日志文件中.在查看日志文件时发现了最奇怪的事情.似乎数据在通过POST发送时正确出现,在卫生设施后仍然很好,在插入数据库后立即检索时仍然很好.但是当我们的前端应用程序提取相同的值以显示给用户端时,获取的数据为2147483647.

  • 所有这样的插入都不会发生这个问题,它发生得非常随机,而且很少发生,但它已经把我们带到了一个点,在那里我要拔毛以寻找解决方案.

  • 开发平台信息:PHP 5.3,MySQL 5.5.31

任何帮助将不胜感激.

这是代码:

$Mobile = filter_input(INPUT_POST, 'mobile', FILTER_SANITIZE_STRING);

$stmt = $mysqli->prepare("INSERT INTO enquiry(idAdminUsers, isConverted, Firstname, Lastname , Residence , WorkCollege , Gender , Age , Occupation , Mobile , Email , Transport , FirstMile , LastMile , Commute , NoPublicTransport , Member , YesMember , PurposeMember , NoMember , Note, Date, FirstMileCost, FirstMileTime, LastMileCost, LastMileTime, landlineNumber) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,NOW(),?,?,?,?,?)");
    if ($stmt) …
Run Code Online (Sandbox Code Playgroud)

php mysql varchar mysqli

6
推荐指数
1
解决办法
1715
查看次数

标签 统计

mysql ×2

php ×2

insert ×1

mysqli ×1

steam-web-api ×1

varchar ×1