Listing 3. Creating a New Customer
<?php
function cart_new() {
global $conn, $customer_id, $feedback;
//start a transaction
query("BEGIN WORK");
//query postgres for the next value in our sequence
$res=query("SELECT nextval('seq_customer_id')");
//check for errors
if (!$res || pg_numrows($res)<1) {
$feedback .= pg_errormessage($conn);
$feedback .= ' Error - Database didn\'t return next value ';
query("ROLLBACK");
return false;
} else {
//set that value in a local var
$customer_id=pg_result($res,0,0);
//register the id with PHP4
session_register('customer_id');
//insert the new customer row
$res=query("INSERT INTO customers (customer_id)
VALUES ('$customer_id')");
//check for errors
if (!$res || pg_cmdtuples($res)<1) {
$feedback .= pg_errormessage($conn);
$feedback .= ' Error - couldn\'t insert new customer row ';
query("ROLLBACK");
return false;
} else {
//commit this transaction
query("COMMIT");
return true;
}
}
}
?>