This is a discussion on PostgreSQL and select nextval within the PHP General forums, part of the PHP Programming Forums category; Hi, I'm getting an error message when i run the following SQL request : $sql = "INSERT INTO tmp_importedxls (rec_id, ...
|
|||||||
| FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read |
|
|||
|
Hi,
I'm getting an error message when i run the following SQL request : $sql = "INSERT INTO tmp_importedxls (rec_id, publisher) VALUES (SELECT nextval('tmp_importedxls_rec_id_seq'),'$pb')"; Error in SQL query: ERROR: syntax error at or near "SELECT" LINE 2: VALUES (SELECT nextval('tmp_importedxls_rec_id_seq'),' ^ I have the feeling that we can not use the select nextval(...) SQL request in an INSERT INTO one under PHP. Is it true? thanks -- Alain ------------------------------------ Windows XP SP2 PostgreSQL 8.2.3 Apache 2.2.4 PHP 5.2.3 |
|
|||
|
Alain Roger wrote:
> Hi, > > I'm getting an error message when i run the following SQL request : > $sql = "INSERT INTO tmp_importedxls (rec_id, publisher) VALUES (SELECT > nextval('tmp_importedxls_rec_id_seq'),'$pb')"; > > Error in SQL query: ERROR: syntax error at or near "SELECT" LINE 2: VALUES > (SELECT nextval('tmp_importedxls_rec_id_seq'),' ^ > > I have the feeling that we can not use the select nextval(...) SQL request > in an INSERT INTO one under PHP. > Is it true? > If rec_id is a SERIAL it will increment itself: INSERT INTO tmp_importedxls (publisher) VALUES ('$pb'); brian |
|
|||
|
On Sun, August 12, 2007 2:35 am, Alain Roger wrote:
> I'm getting an error message when i run the following SQL request : > $sql = "INSERT INTO tmp_importedxls (rec_id, publisher) VALUES (SELECT > nextval('tmp_importedxls_rec_id_seq'),'$pb')"; > > Error in SQL query: ERROR: syntax error at or near "SELECT" LINE 2: > VALUES > (SELECT nextval('tmp_importedxls_rec_id_seq'),' ^ > > I have the feeling that we can not use the select nextval(...) SQL > request > in an INSERT INTO one under PHP. > Is it true? No. PHP doesn't care diddly-squat what is in your query -- It just sends it to PostgreSQL. The query you have written just plain won't work in PostgreSQL, period. Try it in the psql monitor. OT: Almost for sure, you just need to strip out the "VALUES (" bit and the closing paren for it. -- Some people have a "gift" link here. Know what I want? I want you to buy a CD from some indie artist. http://cdbaby.com/browse/from/lynch Yeah, I get a buck. So? |
|
|||
|
Alain Roger wrote:
> Hi, > > I'm getting an error message when i run the following SQL request : > $sql = "INSERT INTO tmp_importedxls (rec_id, publisher) VALUES (SELECT > nextval('tmp_importedxls_rec_id_seq'),'$pb')"; > > Error in SQL query: ERROR: syntax error at or near "SELECT" LINE 2: VALUES > (SELECT nextval('tmp_importedxls_rec_id_seq'),' ^ You don't use SELECT, just put nextval(...) INSERT INTO tmp_importedxls (rec_id, publisher) VALUES (nextval('tmp_importedxls_rec_id_seq'),'$pb') Luck! -- 21:50:04 up 2 days, 9:07, 0 users, load average: 0.92, 0.37, 0.18 --------------------------------------------------------- Lic. Martín Marqués | SELECT 'mmarques' || Centro de Telemática | '@' || 'unl.edu.ar'; Universidad Nacional | DBA, Programador, del Litoral | Administrador --------------------------------------------------------- |
|
|||
|
Richard Lynch wrote:
> On Sun, August 12, 2007 2:35 am, Alain Roger wrote: >> I'm getting an error message when i run the following SQL request : >> $sql = "INSERT INTO tmp_importedxls (rec_id, publisher) VALUES (SELECT >> nextval('tmp_importedxls_rec_id_seq'),'$pb')"; >> >> Error in SQL query: ERROR: syntax error at or near "SELECT" LINE 2: >> VALUES >> (SELECT nextval('tmp_importedxls_rec_id_seq'),' ^ >> >> I have the feeling that we can not use the select nextval(...) SQL >> request >> in an INSERT INTO one under PHP. >> Is it true? > > No. > > PHP doesn't care diddly-squat what is in your query -- It just sends > it to PostgreSQL. > > The query you have written just plain won't work in PostgreSQL, period. > > Try it in the psql monitor. > > OT: > Almost for sure, you just need to strip out the "VALUES (" bit and the > closing paren for it. Nop. If you don't put the "VALUES (" you are passing a query with applyable values for the table in the INSERT. He only wants the next value in the sequence. In that case he just has to not put the SELECT. -- 21:50:04 up 2 days, 9:07, 0 users, load average: 0.92, 0.37, 0.18 --------------------------------------------------------- Lic. Martín Marqués | SELECT 'mmarques' || Centro de Telemática | '@' || 'unl.edu.ar'; Universidad Nacional | DBA, Programador, del Litoral | Administrador --------------------------------------------------------- |