비트 필드 관련 PDO 문제 [중복]
Dec 01 2020
비트 필드가있는 테이블에 삽입을 실행하려고하지만 결과적으로 모든 필드가 기본적으로 1로 채워집니다. 내 실수 또는 이것이 PDO에서 특정 부분을 이해하지 못합니다.
미리 정의 된 쿼리의 예 :
INSERT INTO TABLE (is_hidden, is_on_net, is_off_net, is_international)
VALUES (:is_hidden, :is_on_net, :is_off_net, :is_international)
[is_hidden] => 0
[is_on_net] => 1
[is_off_net] => 0
[is_international] => 0
$this->db->preparedQuery($query, $data); public function preparedQuery($query, $params) { try { $this->checkConnection();
$stmt = $this->pdo->prepare($query); if (!$stmt->execute($params)) { $this->utility->loggerAll($this->logPrefix, __FUNCTION__, $this->logLevel, 1, 'Failed to execute prepared query! ' . $this->pdo->errorInfo()[2] . ', query: ' . $query . ', params: ' . json_encode($params)); return false; } } catch (PDOException $e)
{
$this->utility->loggerAll($this->logPrefix, __FUNCTION__, $this->logLevel, 1, 'Failed to execute prepared query! ' . $e->getMessage() . ', query: ' . $query . ', params: ' . json_encode($params));
return false;
}
return $stmt;
}
답변
1 quaresma89 Dec 01 2020 at 21:08
tinyint
PDO의 비트 필드에 몇 가지 문제가 있기 때문에 데이터 필드를로 변경하여 문제가 해결되었습니다 .
같은 질문 : PDOstatement (MySQL) : 값 0을 비트 (1) 필드에 삽입하면 테이블에 1이 기록됩니다.