gpt4 book ai didi

php - 为什么 PDO 要求字段不能为空以及如何打破该规则?

转载 作者:行者123 更新时间:2023-11-29 07:10:28 24 4
gpt4 key购买 nike

我正在使用 PDO 准备好的语句,显然有些字段有时可能不会被填充,所以我得到一个完整性约束违反错误,如何使 PDO 不查找空字段并按原样将字段放在数据库中?

附言它们甚至是 TEXT 类型。

最佳答案

遍历它们并在执行前删除为 NULL 的字段:

$fields = array(id=>3, name=>NULL, phone=>555-5555)
$attrinutes = array();

foreach ($fields as $field => $value) {
if(isset($value)){
$attributes[$field] = $value;
}
}


$keys = array_keys($attributes);
$values = array_values($attributes);

$sql = "INSERT INTO ". static::$table_name ."(";
$sql .= implode(", ", $keys );
$sql .= ") VALUES (";
$sql .= implode( ", ", array_fill(0, count($attributes) ,'?' ) );
$sql .= ")";

$q = $this->connection->prepare($sql);
$q->execute($values);

*** NOT TESTED ***

还要确保在您的数据库中将字段设置为 NULL

关于php - 为什么 PDO 要求字段不能为空以及如何打破该规则?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4832495/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com