Behavior of parameter holders in query containing a '$1'

Started by Eddy Hahnover 15 years ago2 messagesgeneral
Jump to latest
#1Eddy Hahn
EDDYH@CREIGHTONEDWARD.COM

Hi,

1) I'm reading the API documentation and I'm wondering how the client library would handle the following statement

INSERT INTO test (value1, value2) VALUES ('$1', $1)

Would it handle it incorrectly and would think that '$1' is the parameter or would it skip it because it know that it's a string value encapsulated in ''?

2) Can $1 be used more then one times for example if you want to use the same value for multiple column value?
UPDATE test set value1=$1,value2=$1

Thanks,

Eddy

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Eddy Hahn (#1)
Re: Behavior of parameter holders in query containing a '$1'

Eddy Hahn <EDDYH@CREIGHTONEDWARD.COM> writes:

1) I'm reading the API documentation and I'm wondering how the client library would handle the following statement

INSERT INTO test (value1, value2) VALUES ('$1', $1)

Would it handle it incorrectly and would think that '$1' is the parameter or would it skip it because it know that it's a string value encapsulated in ''?

It should think that that's the literal constant dollarsign-one. That
will definitely work as expected if the client library is relying on
server-side parameter substitution. There have been versions of some
client libraries that did their own textual parameter substitution,
before the server-side facility existed. It's at least theoretically
possible that one of those would've got it wrong, but I've not heard
of actual cases.

2) Can $1 be used more then one times for example if you want to use the same value for multiple column value?
UPDATE test set value1=$1,value2=$1

Sure.

regards, tom lane