我正在使用PDO插入数据库,但是插入的整数值与预期的值不同

  $insert = $con->prepare("INSERT INTO usuarios(id,username,token)
        VALUES (:id,:username,:token)");
        echo $inst->getUser_Id();//here shows the correct value
      $insert->bindparam(':id',$inst->getUser_Id(),PDO::PARAM_INT);
      $insert->bindparam(':username',$inst->getUsername());
      $insert->bindparam(':token',$inst->getToken());
      $insert->execute();
      echo $inst->getUser_Id();//here shows the correct value too


当我检查插入的数据时,字段ID与echo $inst->getUser_Id()不同

最佳答案

问题是,id字段被声明为带符号的整数,其maximum value为2147483647。由于您尝试插入的值大于最大值,并且显然严格的sql模式已关闭,因此mysql将数据舍入为最大值。在int(20)声明中为20 does not influence the maximum value the field can hold。将数据类型更改为bigint或unsigned int即可。

关于php - PDO插入不同的int值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39184244/

10-11 15:58