Php – postgres update through php

PHPpostgresql

I am a complete novice at php and postgres. I have been searching all over the net for an answer but no joy! I have a postgres table called workorders. It has a primary key (ident). I am trying to up date it using a php script/program. Basically the ident is the workorder number. I have written a php script where i type in the workorder number, post it to another php file, which connects to the database, finds the ident that matches and updates it by adding 'paid' to a column called paid. I have made it work using INSERT into, but it will not allow duplicate keys so that is why i am trying to use update. When I do, it says "unexpected T_CONSTANT_ENCAPSED_STRING"

Help would be greatly appreciated.

<?php
include('adodb5/adodb.inc.php');

$DB = &ADONewConnection('postgres');
$DB->PConnect('host=localhost port=5432 dbname=test user=postgres password=secret');

if (!$DB) {
  die("Error in connection: " . pg_last_error());
}

$arr = array( array('paid',$_POST['$invoice']), );
$ok = $DB->Execute('insert into workorders (paid, ident) values (?,?)',$arr);

if (!$ok) {
  die("Invoice not posted. " . pg_last_error ());
}

?>

If I use this I can insert into my database. If I replace INSERT into with UPDATE or pg_update I get errors.

Best Answer

Have now seen your code, which looks fine.

T_CONSTANT_ENCAPSED_STRING is often the result of not escaping quotation marks when used in strings. But I am not seeing that here. Can you post the example that does not work?

include('adodb5/adodb.inc.php');

$DB = &ADONewConnection('postgres');
$DB->PConnect('host=localhost port=5432 dbname=test user=postgres password=secret');
if (!$DB) {
    die("Error in connection: " . pg_last_error());
}

$arr = array( array('paid',$_POST['$invoice']), );
$ok = $DB->Execute('insert into workorders (paid, ident) values (?,?)',$arr);
if (!$ok) {
    die("Invoice not posted. " . pg_last_error ());
}