PHP PDO를 Postgresql 백엔드와 함께 사용하고 있습니다. 일부 nullable 필드 및 사용자가 HTML 양식 필드에 아무것도 입력 할 때 해당 필드가 아닌 빈 문자열을 NULL을 삽입하려면 (이 일부 내 SELECT 이러한 테이블 나중에 사용 조건 같은 중요합니다. WHERE x는 NULL이 아닙니다).PHP PDO가 빈 potsgresql 대신 NULL을 삽입합니다.
그러나이 버전의 bindParam 코드는 빈 문자열을 NULL 대신 null 입력 가능 필드에 삽입합니다.
$stmt2->bindParam(':title', $title, PDO::PARAM_STR);
나는 꽤 읽고이 대신 필드에 null를 삽입 할 수있는 대답이라고 파악했습니다 :
$stmt2->bindParam(':title', $title, PDO::PARAM_NULL);
그러나 이것은 내가 모든 매개 변수를 미리 확인해야 의미 null이 가능한 필드에 전달되어 비어 있는지 확인하고, 그렇다면 PDO_PARAM_STR 대신 PDO :: PARAM_NULL을 전달합니다. 당연히이 작업을 수행 할 수 있지만, 빈 문자열을 만나면 PDO에게 알려주고 대신 null을 삽입하는 설정이 필요할 것으로 기대하고있었습니다.
나는이
$this->dbh->setAttribute(PDO::ATTR_ORACLE_NULLS, PDO::NULL_EMPTY_STRING);
를 우연히 발견하지만 아무런 영향을 미치지 않습니다 및 추가 연구와 나는하지의 길에, 이것은 단지 나가는 길에 대한 기록에 영향을 생각하고 있어요.
모든 옵션 다른 변수를 사전 점검하는 것보다? 당신이 널 원하는 경우
덕분에 아론
고마워,이 얼굴을 보니 분명했다. (나무 숲을 볼 수 없다 ....) – Alpaus