1
我正在使用PDO準備語句,顯然有時可能不會填充某些字段,所以我得到一個完整性約束違規錯誤,如何使PDO不查找空字段,只是把字段放在數據庫,因爲它是?爲什麼PDO要求字段不爲空,以及如何打破該規則?
P.S.他們甚至處於TEXT類型。
我正在使用PDO準備語句,顯然有時可能不會填充某些字段,所以我得到一個完整性約束違規錯誤,如何使PDO不查找空字段,只是把字段放在數據庫,因爲它是?爲什麼PDO要求字段不爲空,以及如何打破該規則?
P.S.他們甚至處於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,但是「完整性約束違規錯誤」聽起來像「NOT NULL」是數據庫的要求,而不是PDO的要求。 – Quentin 2011-01-28 20:03:36