我想使用PDO将一些数据插入到MySql表中。如果它不是空的,它将具有Integer数据类型,所以我使用PDO :: PARAM_INT,但问题是这个数据不是必需的,所以有时候它是空的。
这让我有一个错误:
PDOException:SQLSTATE [HY000]:常规错误:1366整数值不正确。
无论如何,我可以将这个空值变量传递到我的数据库中而没有错误,当它有空值时?这是我的代码片段:
$stmt = $db->prepare("INSERT INTO table (column) VALUES (:column)");
$stmt->bindParam(':column',$_POST['value'], PDO::PARAM_INT);
$stmt->execute();
答案 0 :(得分:-1)
有两种可能的解决方案。
更普遍的一个是关闭strict mode for your Mysql server。
虽然它'不可能/不可取,在插入
之前用PHP转换它$value = (int)$_POST['value'];
如果您的字段允许空值和
Pageable wrapped = new PageRequest(pageable.getPage(), Math.min(pageable.getSize(), **maxsize**), pageable.getSort());
return userRepository.findAll(wrapped);
如果没有。
现在绑定$ value而不是$ _POST [' value']
答案 1 :(得分:-2)
在我的情况下,我这样使用:
if(empty($_POST['value'])){ $value = NULL; } else { $value = $_POST['value']; }
$stmt->bindParam(':column', $value);
对我来说效果最好,请从您这一边尝试:-)