Hi Sean, see below! 2002. október 1. 18:54 dátummal test test ezt írta: | Hi, | | I am trying to insert a date into a date field, but also sometimes I | need to insert a null value. Inserting the null value seems to | require not using quotes around null, but if I try to enter a date | without quotes around it, it thinks it is a number. | | Here is the error I get: Warning: PostgreSQL query failed: ERROR: | column "spec_start_date" is of type 'date' but expression is of type | 'integer' You will need to rewrite or cast the expression | | The value I am sending is: spec_start_date = 10/01/02 | | If I surround the date with single quotes it should be fine, but I | can't do that when I want to insert a null value. I know that I can | do an "IF <use quotes> ELSE <don't use quotes>" in the SQL string, by | I am entering many values and this would really get messy. I was | hoping that there was a better solution. Thanks for any help. | | Sean | Beware crude hack is coming!!! I wrote a fairly plain function which does the dirty quoting to any kind of values to be inserted. It looks like: function quote($var, $type, $empty_null = TRUE) { if ( empty($var) && $empty_null ){ return 'NULL'; } // if type is prepended with _ it means "array of ..." if ( $type{0} == '_' ){ $type = substr($type, 1); $temp = "'{"; foreach ( $var as $item ){ $temp .= quote($item, $type).','; // recursive call } $temp = substr($temp, 0, -1); return $temp ."}'"; } switch ( $type ){ case 'int': return intval($var); case 'bool': return ($var ? "'t'::bool": "'f'::bool"); case 'date': if ( is_numeric($var) ) { // treats as timestamp integer return date("'Y-m-d'", $var); } // otherwise as a date string case 'text': if (!get_magic_quotes_gpc()) { $var = addslashes($var); } return '\''.$var.'\''; default: trigger_error("unknown type : $type ($value)", E_USER_ERROR); } } You must notice that $var holds the corresponding value to be inserted or not set (in this case the function returns with NULL), $type is neither a legal type from PHP nor from Postgresql, but I think you can figure out how it works. In my app, I have a PHP array which keeps information about what fields needs to be inserted and what type these fields have. $PROPERTIES = array ( 'seatnum' => 'int', 'myear' => 'int', 'kmage' => 'int', 'price' => 'int', 'volume' => 'int', 'power' => 'int', 'pprpm' => 'int', 'color' => 'text', 'damaged' => 'bool', 'condition' => 'int', 'ownernum' => 'int', 'regvalid' => 'text', 'cylindernum' => 'int', 'cylinderarr' => 'int', 'gearnum' => 'int', 'gearing' => 'int', 'autoclutch' => 'bool', 'truss' => 'int', 'trussmaterial' => 'int', 'frontbreak' => 'int', 'rarebreak' => 'int', 'accessories' => '_int', 'notes' => 'text' ); finally I have to loop through this array and simply calls quote to quote the posted variables. hth, -- Papp, Győző - pgerzson@xxxxxxxxxxxx