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; } } } ?>