У нас есть что-то вроде следующей инструкции PDO, которую мы используем для связи с базой данных PostgreSQL 8.4.
$st = $db -> prepare("INSERT INTO Saba.Betriebskosten (personalkosten)
VALUES(:kd_personalkosten)");
$st -> bindParam(':kd_personalkosten', $val['kd_personalkosten']);
$val['kd_personalkosten'] либо пуст/нуль, либо содержит двойное значение. В случае если он пустой/нуль, мы просто хотим вставить пустое значение, но получаем следующую ошибку:
SQLSTATE[22P02]: Invalid text representation: 7 ERROR: invalid input syntax for type double precision: '';
Это означает, что empty/null преобразуется в пустую STRING, которая несовместима с полем двойной точности. Как обойти эту ошибку?
PostgreSQL 8.4
значения NULL для двойной точности? - person david strachan   schedule 29.11.2012the
допустимым значением для пустой строки, преобразование ее в числовое допустимо. Но если пустая строка означает отсутствие значения, вы должны сохранить ее как NULL, как предложил Иван. Очевидно, это будет означать переопределение поля. Если это невозможно, вы можете использовать числовое значение, которое не имеет смысла для вашего приложения. Например, 99999,999. - person david strachan   schedule 29.11.2012