好吧,所以我一直在玩Steam Web API,我有一个值存储在一个名为的变量中$steam64.当我使用此代码片段将其插入到mysql数据库中时,它会插入一个完整的不同整数,而不是存储在变量中的整数.
$sql_query = "INSERT INTO users_info (steam64) VALUES ('$steam64')";
var_dump($steam64);返回真正的int,所以回显它.不太清楚这里发生了什么,任何帮助表示赞赏.
这是我们一直在敲打近一个星期的事情.
发生了什么?
在我们的应用程序中,我们有一个电话号码字段,它与数据类型为VARCHAR(25)的数据库字段有关.我们不是在使用INT,BIGINT.
在表单提交上,我们将数据存储如下.
$_POST
使用清理数据 filter_input(INPUT_POST, 'mobile', FILTER_SANITIZE_STRING);
使用mysqli->prepare插入数据到数据库,其中绑定-PARAMS也设置正确.此字段设置为使用"s"(字符串)进行映射.
然后将数据存储到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)