Re: Inserting Null Value or String Value

From: Sean <dcmkx10(at)yahoo(dot)com>
To: Eckhard Hoeffner <e-hoeffner(at)fifoost(dot)org>, Postgres-PHP <pgsql-php(at)postgresql(dot)org>
Subject: Re: Inserting Null Value or String Value
Date: 2002-10-01 19:12:43
Message-ID: 20021001191243.28811.qmail@web14410.mail.yahoo.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-php


Actually, this does not work, it generates the SQL fine, but I get a Parse error when trying to insert it. I am doing something very similar, did I mess up somewhere.
Here is the PHP:
if ($special_start_date == '')
{$special_start_date = 'null';}
else {$special_start_date = "'$special_start_date'";}
if ($special_end_date == '')
{$special_end_date = 'null';}
else {$special_end_date = "'$special_end_date'";}
$sql = "INSERT INTO prod_opt (
xref_prod_id,
code,
title,
isbn,
list_price,
our_price,
spec_price,
spec_start_date,
spec_end_date,
quantity,
clearance,
priority)
VALUES (
'".$prod_id."',
'".$item_code."',
'".$option_format."',
'".$isbn."',
".$list_price.",
".$our_price.",
".$special_price.",
".$special_start_date.",
".$special_end_date.",
".$qty.",
'".$clearance."',
".$priority.")";
$result = pg_exec($dbh, $sql);
This is the error I get: Warning: PostgreSQL query failed: ERROR: parser: parse error at or near "10"
This is the SQL generated: UPDATE prod_opt SET xref_prod_id = '4', code = '2', title = 'test', isbn = '2', list_price = 2, our_price = 2, spec_price = 2, spec_start_date = '10/01/02', spec_end_date = '10/01/02', quantity = 2, clearance = 't', priority = 2 WHERE id = '2'
-Sean
Eckhard Hoeffner wrote: * Keary Suska [01 10 02 19:37]:

>on 10/1/02 10:54 AM, dcmkx10(at)yahoo(dot)com purportedly said:
>
>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
>
>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 >quotes> ELSE " 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.
>
>If there is a way, I haven't found it yet. But it doesn't have to be
>messy--simply create a function that does the if-else for you, and your code
>will stay clean.

Maybe you should do the following. At the point where the switch
"date" or "NULL" in the php-file is:

if(empty($form_date)){
$date_var = NULL;
}else $date_var = "'$date'";

$query = "INSERT INTO table (table_row1, date)
VALUES ('$value1', $date_var);";

You still have the if/else, but I think there must be somewhere the
switch NULL <=> date

--
Eckhard Hffner
e-hoeffner(at)fifoost(dot)org
D-80331 Mnchen
Tel. +49-89-21 03 18 88

---------------------------(end of broadcast)---------------------------
TIP 6: Have you searched our list archives?

http://archives.postgresql.org

---------------------------------
Do you Yahoo!?
New DSL Internet Access from SBC & Yahoo!

In response to

Responses

Browse pgsql-php by date

  From Date Subject
Next Message Sean 2002-10-01 19:20:10 Re: Inserting Null Value or String Value
Previous Message Papp Gyozo 2002-10-01 18:41:57 Re: Inserting Null Value or String Value