Search Postgresql Archives

Re: Using DEFAULT as a parameter value with PQexecPrepare()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I simplified my example somewhat. I usually have six of these "optional" parameters.
The number of prepared statements would be too many for this approach.

I will follow your advice in the cases where I just one or two of the "optional" parameters.

Looks like I will need to dynamically build my SQL command as:

    INSERT INTO t ( c1, c2, c5, c8, c11 ) VALUES ( $1, $2, $3, $4, $5 );

when the number of "optional" parameters is larger. 

I can at least use PQexecParams() to get some SQL injection protection and avoid the escaping and quoting of the parameter values. 

Thanks for the advice


-----Original Message-----
From: pgsql-general-owner@xxxxxxxxxxxxxx [mailto:pgsql-general-owner@xxxxxxxxxxxxxx] On Behalf Of Greg Sabino Mullane
Sent: Thursday, April 05, 2012 7:18 PM
To: pgsql-general@xxxxxxxxxxxxxx
Subject: Re:  Using DEFAULT as a parameter value with PQexecPrepare()


-----BEGIN PGP SIGNED MESSAGE-----
Hash: RIPEMD160


> I was looking for a to use a prepared statement for this operation.
>
>  PREPARE myinsert  AS "INSERT INTO t ( c1, c2, c3, c4, c5) VALUES ( $1, $2, $3, $4, $5);
>
> Now I want to execute this prepared statement something like:
>
> EXECUTE myinsert ( 'abc', 1, DEFAULT, 9, 3);
>
> Is there any way to specify the column's default value as a parameter value?

You will need to have separate prepared statements. In the case above, 
you can use either:

PREPARE myinsert2 AS INSERT INTO t(c1,c2,c3,c4,c5) VALUES ($1,$2,DEFAULT,$3,$4);

or

PREPARE myinsert2 AS INSERT INTO t(c1,c2,c4,c5) VALUES ($1,$2,$3,$4);

- -- 
Greg Sabino Mullane greg@xxxxxxxxxxxx
End Point Corporation http://www.endpoint.com/
PGP Key: 0x14964AC8 201204052214
http://biglumber.com/x/web?pk=2529DF6AB8F79407E94445B4BC9B906714964AC8
-----BEGIN PGP SIGNATURE-----

iEYEAREDAAYFAk9+UiQACgkQvJuQZxSWSsikAwCg/f28B4vLzPvurQtf8hmdhqO4
dHgAoIR8nuy89zN3t46FdoQMDm3oWIE3
=wCLM
-----END PGP SIGNATURE-----



-- 
Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general

-- 
Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux