¡¾·±ÌåÖÐÎÄ¡¿
¡¾ÉèΪÊ×Ò³¡¿
¡¾¼ÓÈëÊղء¿
µ±Ç°Î»ÖãºPHP¼¼ÊõÊ×Ò³ >> PHP¼¼ÇÉ >> ÓÃPHP4 ºÍ PostgreSQL ¹¹½¨Ò»¸öµç×ÓÉÌÎñÓ¦ÓÃ

ÓÃPHP4 ºÍ PostgreSQL ¹¹½¨Ò»¸öµç×ÓÉÌÎñÓ¦ÓÃ

2004-10-01 08:26:10  ×÷Õߣº  À´Ô´£º»¥ÁªÍø  ä¯ÀÀ´ÎÊý£º17  ÎÄ×Ö´óС£º¡¾´ó¡¿¡¾ÖС¿¡¾Ð¡¡¿
¼ò½é£º±¾ÎÄͨ¹ýÒ»¸ö¼òµ¥µÄweb Ó¦Óã¬ÑÝʾÁË PHP ºÍ PostgresSQL ÔÚµç×ÓÉÌÎñÖеÄÓ¦Óᣠ²»¾ÃÒÔǰ£¬Èç¹ûÒª¼Ü¹¹Ò»¸öÑÏËàµÄWebÓ¦Óõϰ£¬Òâζ׏ºÂò¼Û¸ñ²»·ÆµÄCold Fusion Ðí¿É£¬ÒÔ¼°Ò»¸öÉÌÒµµÄÊý¾Ý¿â·þÎñ³ÌÐòÏñSybase ¼Ó...

±¾ÎÄͨ¹ýÒ»¸ö¼òµ¥µÄweb Ó¦Óã¬ÑÝʾÁË PHP ºÍ PostgresSQL ÔÚµç×ÓÉÌÎñÖеÄÓ¦Óá£

²»¾ÃÒÔǰ£¬Èç¹ûÒª¼Ü¹¹Ò»¸öÑÏËàµÄWebÓ¦Óõϰ£¬Òâζ׏ºÂò¼Û¸ñ²»·ÆµÄCold Fusion Ðí¿É£¬ÒÔ¼°Ò»¸öÉÌÒµµÄÊý¾Ý¿â·þÎñ³ÌÐòÏñSybase ¼ÓÉÏSun ·þÎñÆ÷¡£ÐÒÔ˵ÄÊÇ£¬ÕâÑùµÄÈÕ×Óһȥ²»¸´·µÁË¡£Ëæ×ÅÈÕ½¥³ÉÊìµÄÃâ·ÑÊý¾Ý¿âÊг¡ÒÔ¼°Apache ʹÓÃÕߵĴóÁ¿Ôö³¤£¬Ò»Ð©Ìæ´ú²úÆ·ÒѾ­¾ßÓÐÏ൱£¬ÉõÖÁ³¬¹ýÁËÕâЩרÓÐÈí¼þµÄÄÜÁ¦¡£

±È½ÏºÃµÄ¿ª·ÅÔ´ÂëÈí¼þµÄÒ»ÖÖÊÇ PHP£¬Ò»¸öºÜÏñPerl µÄ½Å±¾ÓïÑÔ£¬ÒÔ¼°PostgreSQL£¬Ò»¸öºÜÇ¿´óµÄÃæÏò¶ÔÏóµÄÊý¾Ý¿â¡£Èç¹û°ÑÁ½Õß½áºÏÆðÀ´µÄ»°£¬Äã¿ÉÒÔÉè¼Æ´Ó¼òµ¥µÄÁôÑÔ²¾µ½Ò»¸ö¾Þ´óµÄ»ùÓÚWeb µÄ²ÆÎñÈí¼þ¡£PHP Ìṩ´óÄÔ¶øPostgres Ìṩ·¢´ïµÄ¼¡Èâ¡£

ÏÂÃæ½éÉÜÒ»¸öºÜ»ù±¾µÄ PHP ¹ºÎï³µºÍ¿â´æÓ¦Ó㬳ä·ÖÀûÓà Postgres µÄÊÂÎñ¹¦ÄÜ¡£Ô´ÂëÍÆäËû×ÊÁÏ¿ÉÒÔ´?PHPBuilder.com ÏÂÔØ¡£

Ê×ÏÈÒªÌáµ½µÄÊÇÓ¦ÓóÌÐòµÄ½á¹¹£¬ÔÚÎÒµÄPHP Web Ó¦ÓÃÖУ¬ÎÒ×ÜÊÇÊ×ÏÈÉèÖÃÒ»¸ö×ÛºÏ¿â£¬ÍøÕ¾µÄÿһ¸öÒ³Ãæ¶¼»áÓõ½Ëü£¬È¡Ãû½Ðcommon.php ´æ·ÅÔÚinclude Ŀ¼¡£

Õâ¸ö¿â»á´¦ÀíÈÕ³£ÈÎÎñ£¬ÀýÈçÊý¾Ý¿âÁ¬½Ó£¬Óû§¼ø±ð£¬Õ¾µãµÄÍ·²¿/β²¿ÎļþµÈ¡£°ÑÕâЩº¯Êý·ÅÔÚÒ»¸öµØ·½£¬ÎÒÃǵÄÓ¦Óÿ´ÉÏÈ¥ºÜ¸É¾»£¬ÈÝÒ×ά»¤¡£

±íÒ»£ºÊ¾·¶µÄ¿â´úÂë

common.php:

//Á¬½Ó postgres Êý¾Ý¿â

$conn=pg_pconnect("user=tim dbname=db_example");

//¿´Á¬½ÓÊÇ·ñ³É¹¦

if (!$conn) {

//Èç¹ûʧ°ÜÔò±¨¸æ³ö´í

echo pg_errormessage($conn);

exit;

}

//Õ¾µãµÄÍ·Îļþ

function site_header ($title) {

return '

'.$title.'

';

}

// Ò³Ãæ½áβµÄ HTML ´úÂë

function site_footer () {

return '';

}

//Ò»¸ö¼òµ¥µÄ²éѯִÐк¯Êý£¬ÓÃÀ´¼õÉÙ´úÂë

function query($sql) {

global $conn;

return pg_exec($conn,$sql);

}

//ÈÃÿһ¸öÒ³Ãæ×Ô¶¯Æô¶¯session»òÕß±£´æ session ״̬

session_start();

?>

Òò´Ë£¬ÎÒÃǵĵÚÒ»¸ö°æ±¾µÄ¿âÒѾ­¿ÉÒÔÓÃÁË£¬ËüÁ¬½ÓÊý¾Ý¿â£¬ÌṩÁ˼òµ¥µÄ HTML

´úÂë¡£

ÎÒÃÇÕ¾µãÉÏÿһ¸öÒ³Ãæ¶¼°üÀ¨£º

require ($DOCUMENT_ROOT.'/include/common.php');

echo site_header('ʾ·¶Ò³Ãæ');

/*

Ò³ÃæÂß¼­´¦Àí

*/

echo site_footer();

?>

Ò»°ã˵À´£¬ÔÚ¹¹½¨Ó¦ÓóÌÐòʱ£¬°ÑÂß¼­ºÍʵ¼ÊµÄ±íʾ£¨ÔÚÎÒÃÇÕâÀï¾ÍÊÇHTML£©·Ö¿ªÊǺÜÃ÷Öǵġ£Òò´Ë£¬ÎÒ°ÑÂß¼­·Åµ½º¯ÊýÀïÃæ¡£µ«ÊÇPHP ʹÓú¯Êýµ÷Óõķ½·¨£¬È±µãÊÇûÓбê×¼µÄ³ö´í´¦Àí¹ý³Ì£¬Èç¹ûº¯ÊýÄÚ²¿ÓдíµÄ»°£¬ºô½Ðº¯ÊýµÄ³ÌÐò²»ÄܰѰѴíÎóÐÅÏ¢´«µÝ¸øÓû§¡£ÔÚÆäËûµÄÓïÑÔ£¬ÀýÈçJava ÀïÃæ£¬Äã¿ÉÒÔʹÓÃtry/catchÓï¾äÀ´´¦Àí¡£

ÎҵĽâ¾ö°ì·¨ÊÇ£¬Ã¿¸öº¯Êý×ÜÊÇ·µ»Ø true »òÕß false £¬ÉèÖÃÒ»¸ö$feedbackÈ«¾Ö±äÁ¿£¬ÕâÑùµÄ»°£¬½á¹û¾Í¿ÉÒÔ²âÊÔ¡£ÏÖÔÚÓÐÒ»¸ö½Ð×öPEAR (http://pear.php.net/) µÄÏîÄ¿ÔÚ×ö±ê×¼»¯´íÎó´¦ÀíÒÔ¼°Êý¾Ý¿â´æÈ¡µÄŬÁ¦£¬

µ«Êǵ½Ä¿Ç°ÎªÖ¹£¬»¹²»ÄÜÎȶ¨ÔËÐС£

ÏÂÃæÊÇÒ»¸öʹÓÃÎÒµÄ true/false ·½·¨µ÷Óú¯ÊýµÄÀý×Ó£º

$result=function_call_name();

if (!$result) {

//ÏÔʾ´íÎó

echo $feedback;

} else {

//ûÓдíÎ󣬼ÌÐø

}

?>

ºÃÁË£¬ÏÖÔÚÈÃÎÒÃÇ¿ªÊ¼ÏëÏ빺Îï³µ°É£¡ ÎÒÃÇÐèҪһЩ»ù±¾µÄÊý¾Ý½á¹¹´æ´¢¹ºÎï³µµÄÊý¾Ý¡£ÀýÈ磬ÎÒÃÇÐèÒªÒ»¸ö¿â´æÊý¾Ý¿âÁгöÎïÆ·Ãû×Ö£¬²¿¼þºÅÂ룬¼Û¸ñÒÔ¼°ÊýÁ¿£¬Í¬Ê±£¬ÎÒÃÇ

»¹ÐèÒª¼Ç¼¹Ë¿Í¹ºÂòµÄÎïÆ·......Ì«¸´ÔÓÁË£¬¾ÍдÕâЩ°É¡£

±í¶þ¡¢¹ºÎï³µÊý¾Ý½á¹¹

Cart.sql:

# ½¨Á¢Ò»¸ö˳Ðò±íÓÃÀ´²úÉú¹Ë¿ÍºÅÂë¡£

# ÿ¸öid Ö®¼äÓÃËæÒâµÄÒ»¸öÊý×Ö·Ö¿ª£¬ÒÔ·À±ðÈ˲²⹺Îï³µºÅÂë¡£

create sequence seq_customer_id increment 26 start 1;

create table customers (

customer_id int not null default 0 primary key,

name text,

address text,

credit_card text,

total_order MONEY DEFAULT '{CONTENT}.00'

);

create table cart_items (

cart_item serial,

customer_id int,

part_number int,

quantity int

);

create index idx_cart_customer on cart_items(customer_id);

create table item_inventory (

part_number serial,

name text,

price float,

inventory int

);

Õâ¸ö½á¹¹¸øÎÒÃÇÒ»¸ö»ù±¾µÄ¹ºÎï³µ£¬ÎªÁ˹淶Êý¾Ý¿âģʽ£¬ÎÒ½¨Á¢Ò»¸ö¶ÀÁ¢µÄ±í£¬ÓÃÓÚÁгö¹Ë¿ÍµÄ¹ºÎï³µÀïµÄÄÚÈÝ¡£ÕâÑù£¬Èù˿͵ĹºÎï³µ¿ÉÒÔÓжàÏîÎïÆ·£¬²¢ÇÒ¿ÉÒÔºÜÈÝÒ×

µØºÍ¿â´æÊý¾Ý¿âÁ¬½Ó¡£

ÏÖÔÚÎÒÃÇÐèÒª¿¼ÂÇ»¸öÔÚÏßÉ̵êµÄ¸÷ÖÖ¹¦ÄÜÁË¡£Ò»¸ö×î»ù±¾µÄ¹¦ÄܾÍÊÇÈ¡µÃÒ»²¿¹ºÎï³µ£¬Íù³µÀïÌí¼ÓÎïÆ·£¬È»ºó½áÕË¡£µ±È»Ò»¸öʵ¼Ê²Ù×÷µÄÔÚÏßÉ̵꣬»¹ÐèÒªºÜ¶à¹¦ÄÜ£¬Ïñä¯À?ÎïÆ·£¬µ÷ÕûÊýÁ¿µÈ¡£ÕâЩ¾ÍµÈÄã×Ô¼ºÀ´Íê³ÉÁË¡£

ÎÒ´ÓÒ»¸ö¼òµ¥µÄÉú³ÉÒ»¸ö¹Ë¿ÍµÄ¹¦ÄÜ¿ªÊ¼£¬ËùÓÐÕâЩÆäʵ¾ÍÊÇÔÚÅŶӵĹ˿ÍÖÐÈ¡µÃÏÂÒ»¸ö¹Ë¿ÍµÄ×ÊÁÏ£¬²åÈë¹Ë¿Í±í£¬°Ñ¹Ë¿ÍºÅÂëÔÚPHP4 ÄÚÖõÄsession ¹ÜÀíÖÐ×¢²á¡£

±íÈý¡¢½¨Á¢Ò»¸öй˿Í

function cart_new() {

global $conn, $customer_id, $feedback;

// Æô¶¯Ò»¸öÊÂÎñ

query("BEGIN WORK");

//²éѯÏÂÒ»¸ö¹Ë¿ÍºÅÂë

$res=query("SELECT nextval('seq_customer_id')");

//¼ì²é´íÎó

if (!$res || pg_numrows($res)<1) {

$feedback .= pg_errormessage($conn);

$feedback .= ' Error - Database didn't return next value ';

query("ROLLBACK");

return false;

} else {

$customer_id=pg_result($res,0,0);

// µÇ¼Çµ½ session

session_register('customer_id');

// ²åÈëй˿Í

$res=query("INSERT INTO customers (customer_id)

VALUES ('$customer_id')");

//¼ì²é´íÎó

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;

}

}

}

?>

Õâ¶Î´úÂë±È½Ï³¤£¬ËäÈ»ÎÒ²»ÊǺÜϲ»¶£¬µ«ÊÇËüÑÝʾÁËÔõÑùÕýÈ·¿ªÊ¼ºÍ½áÊøPostgres µÄÊÂÎñÒÔ¼°ÔõÑù¼ì²é²éѯÓï¾äµÄ´íÎó¡£ÎÒÒªÔÚËùÓеĴúÂëÓõ½Í¬ÑùµÄ´íÎó¼à²â³ÌÐò£¬ÎÒÏ룬ÄãÒ²Ó¦¸ÃÈç´Ë¡£

ÐèÒª¼Æ»®ºÃÈç¹û²éѯ³ö´íµÄ´¦Àí°ì·¨£¬ÄãÊÇÖ±½ÓÖÕÖ¹³ÌÐòÄØ£¿»¹ÊÇÖØÐÂÔËÐвéѯÓï¾ä£¬ÒÖ»ò¼ÌÐøÖ´ÐУ¬¾Íµ±Ê²Ã´Ò²Ã»Óз¢Éú£¿×Ðϸ¿¼ÂÇÿÖÖÑ¡ÔñµÄ½á¹û¡£ÀýÈ磬Èç¹û²»Äܵõ½ÏÂÒ»¸ö¹Ë¿ÍµÄcustomer_id £¬ÄÇô£¬½¨Á¢Ð¹˿͵ļǼҲ¾ÍÅÝÌÀ£¬½ÓÏÂÀ´¾ÍÊDz»ÄܸüÐÂËýµÄµØÖ·£¬²»ÄÜÍù¹ºÎï³µÀïÌí¼ÓÎïÆ·£¬¶Ô°É£¿

ÏÖÔÚ£¬ÎÒÃÇ¿´¿´Ìí¼ÓÎïÆ·µÄ¹ý³Ì£¬Õâ¸ö²½ÖèÏà¶Ô±È½ÏÈÝÒ×£¬ÔÚÌí¼ÓÎïÆ·Ö®Ç°£¬ÒªÏȼì²éÎïÆ·ÊÇ·ñÔÚÊý¾Ý¿âÖС£ÕâÑù±È½Ï°²È«£¬ÒòΪÎïÆ·ºÅÂëÀ´×Ôä¯ÀÀÆ÷£¬¿ÉÄܱ»´Û¸Ä¡£Ò»µ©ÖªµÀÎïÆ·´æÔÚ£¬ÎÒÃǾÍÄܲâÊÔËüÊÇ·ñÒѾ­ÔÚ¹ºÎï³µÀÈç¹ûÒѾ­·ÅÈ룬ÄÇôÊýÁ¿¼ÓÒ»£¬¶ø²»ÊÇÁíÍâ²åÈëÒ»ÐУ¬·ñÔò£¬²åÈëÒ»ÌõÊýÁ¿ÎªÒ»µÄ¼Ç¼µ½¹ºÎï³µ¡£

±íËÄ¡¢Ìí¼ÓÎïÆ·µ½¹ºÎï³µ

function cart_add_item($item_id,$quantity=1) {

global $customer_id, $feedback, $conn;

$res=query("SELECT * FROM item_inventory WHERE part_number='$item_id'");

if (!$res || pg_numrows($res)<1) {

$feedback .= pg_errormessage($conn);

$feedback .= ' Error-item not found ';

return false;

} else {

// ¼ì²éÎïÆ·ÊÇ·ñ·ÅÈ빺Îï³µ£¬Èç¹ûÊÇ£¬Ôö¼ÓÊýÁ¿

// ¿ªÊ¼ÊÂÎñ

query("BEGIN WORK");

$res=query("SELECT * FROM cart_items ".

"WHERE part_number='$item_id' AND customer_id='$customer_id' FOR UPDATE");

if (!$res || pg_numrows($res)<1) {

//Èç¹ûûÓиÃÎïÆ·£¬Ð²åÈëÒ»Ìõ

$res=query("INSERT INTO cart_items ".

"(customer_id,part_number,quantity)".

"VALUES ($customer_id,$item_id,$quantity)");

if (!$res || pg_cmdtuples($res) < 1) {

$feedback .= pg_errormessage($conn);

$feedback .= ' Error-couldn't insert into cart ';

//¾¡¹ÜûÓж«Î÷±»¸Ä±ä£¬µ«ÊÇ×îºÃ»¹ÊǻعöÊÂÎñ

query("ROLLBACK");

return false;

} else {

query("COMMIT");

return true;

}

} else {

//¹ºÎï³µÖÐÒѾ­´æÔÚ¸ÃÎïÆ·

$res=query("UPDATE cart_items SET quantity = quantity + $quantity ".

"WHERE part_number='$item_id' AND

customer_id='$customer_id'");

if (!$res || pg_cmdtuples($res) < 1) {

$feedback .= pg_errormessage($conn);

$feedback .= ' Error-couldn't increment quantity in cart ';

query("ROLLBACK");

return false;

} else {

// Ìá½»¸Ä±ä£¬Õýʽ¸üÐÂÊý¾Ý¿â¡£

query("COMMIT");

return true;

}

}

}

}

?>

ÏÖÔÚÎÒÃÇÄܽ¨Á¢Ð¹˿ͣ¬²¢ÇÒËûÃÇÌí¼ÓÎïÆ·ÁË¡£ÎÒÃÇÏÖÔÚÐèÒª½áÕË£¬²¢¼õµô¿â´æ¡£ÕâÒ»²¿·ÖÊÇ×Ôӵ쬳ä·ÖÀûÓÃÁËPostgres µÄÊÂÎñ¹¦ÄܺÍÏȽøËø»úÖÆ¡£

ÎÒÃÇÓÃPostgres µÄ SELECT...FOR UPDATE Óï·¨×÷Ϊ¿ªÊ¼£¬Õâ¸öÓï¾äÄÜÓÐЧµØ¶Ôµ±Ç°Ñ¡ÔñµÄÐмÓËøÊ¹ÄãÄÜÔÚÒ»¸öÊÂÎñÀï¸üв¢Ìá½»¸Ä±ä¡£

ͨ¹ýÔÚÒ»¸öÊÂÎñÀïʹÓÃÕâ¸öÓï¾ä£¬Äã¿ÉÒÔ±£Ö¤Êý¾ÝµÄÒ»ÖÂÐÔ¡£ÔÚÆäËûµÄһЩÊý¾Ý¿â£¬ÀýÈçMySQL £¬¾Í²»ÄÜËø¶¨Ö¸¶¨µÄÊý¾ÝÐУ¬¶øµÃµ½²»ÕýÈ·µÄÊý¾ÝÒÔ¼°Ã»ÓÃµÄ¿â´æÍ³¼Æ¡£

Õâ¸öÓï¾äÒ²ÄÜÀûÓÃ×Ó²éѯ£¬ÁíÍâÒ»¸öÊý¾Ý¿âµÄ±ê×¼ÌØÐÔ¡£×Ó²éѯ¿ÉÒÔÈÃÄãºÜʡʵذÑÁ½¸ö²éѯ½áºÏÔÚÒ»Æð£¬

Ëø¶¨ÐÐÒÔºó£¬ÎÒÃÇÐèÒª°´ÕÕ¹ºÎï³µµÄÎïÆ·¼õÉÙ¶ÔÓ¦µÄ¿â´æÁ¿¡£Îª¼ò±ãÆð¼û£¬ÎÒÃÇ¶Ô¿â´æ²»¹»²»±¨¸æ´íÎ󣬲¢°Ñ¿â´æ±äΪ¸ºÊý¡£Äã¿ÉÒÔ×Ô¼ºÐ´Ò»¸ö¹ÜÀíÒ³Ãæ£¬²é¿´¸ºÊý¿â´æµÄÎïÆ·£¬²¢È¥¶©¹º¡£

×îºó£¬ÎÒÃǸüй˿ͱíÖеÄÐÅÓÿ¨£¬¹ºÂòÐÅÏ¢£¬ºÏ¼Æ¹ºÂò½ð¶î£¬³·µôÕâ¸ö¹Ë¿ÍµÄsession¡£

±íÎå¡¢½áÕË£¬¼õ¿â´æ

function cart_checkout($credit_card,$address,$name) {

global $conn, $customer_id, $feedback;

// ÊÂÎñ¿ªÊ¼

query("BEGIN WORK");

// Ëø×¡¿â´æ±íµÄ¶ÔÓ¦ÐУ¬ÓÃÒ»¸ö¼òµ¥µÄ×Ó²éѯÀ´´¦Àí¡£

$sql="SELECT * FROM item_inventory ".

"WHERE part_number ".

"IN (SELECT part_number FROM cart_items ".

"WHERE customer_id='$customer_id') ".

"FOR UPDATE";

$res=query($sql);

if (!$res || pg_numrows($res)<1) {

$feedback .= pg_errormessage($conn);

$feedback .= ' Error - no items locked ';

query("END WORK");

return false;

} else {

// ¿â´æµÄij¼¸ÐÐÒѱ»Ëø¶¨£¬´Ó¹ºÎﳵȡµÃÎïÆ·ÒÔ¼°ÊýÁ¿¡£

$sql="SELECT part_number,quantity ".

"FROM cart_items ".

"WHERE

customer_id='$customer_id' ".

"ORDER BY part_number DESC";

$res2=query($sql);

if (!$res2 || pg_numrows($res2)<1) {

$feedback .= pg_errormessage($conn);

$feedback .= ' Error - no items in cart ';

query("END WORK");

return false;

} else {

$rows=pg_numrows($res2);

// ¸üÐÂ¿â´æÓà¶î

for ($i=0; $i < $rows; $i++) {

// ¶ÁÈ¡¹ºÎï³µÊý¾Ý

$quantity=pg_result($res2,$i,'quantity');

$item_id=pg_result($res2,$i,'part_number');

$res3=query("UPDATE item_inventory".

"SET inventory =inventory-$quantity ".

"WHERE part_number='$item_id'");

if (!$res3 || pg_cmdtuples($res3) < 1) {

$feedback .= pg_errormessage($conn);

$feedback .= ' Error - updating inventory failed ';

query("ROLLBACK");

return false;

}

}

// ¿â´æ¸üнáÊø£¬µÃµ½Õâ¸ö¶©µ¥µÄºÏ¼Æ½ð¶î²¢¸üй˿ͼǼ

$res=query("SELECT sum(cart_items.quantity*item_inventory.price) ".

"FROM cart_items,item_inventory ".

"WHERE cart_items.customer_id='$customer_id' ".

"AND cart_items.part_number=item_inventory.part_number");

if (!$res || pg_numrows($res) < 1) {

//couldn't get order total

$feedback .= pg_errormessage($conn);

$feedback .= ' Error - couldn't get order total ';

query("ROLLBACK");

return false;

} else {

// ¸üй˿ͱí

$total=pg_result($res,0,0);

$res=query("UPDATE customers ".

"SET address='$address',name='$name',".

"total_order='$total',credit_card='$credit_card'".

"WHERE customer_id='$customer_id'");

if (!$res || pg_cmdtuples($res) < 1) {

$feedback .= pg_errormessage($conn);

$feedback .= ' Error - updating customer information ';

query("ROLLBACK");

return false;

} else {

// ¸Ä±äÕýʽÉúЧ

query("COMMIT");

// ɾ³ý session

$customer_id=0;

session_destroy();

return true;

}

}

}

}

}

?>

ÔðÈα༭£ºadmin
±¾ÎÄÒýÓõØÖ·£º http://www.3pcode.com/php/2004/10/8605.htm
Ïà¹ØÎÄÕÂ