私はthis exampleを使ってデータベースにPayPalからの情報を保存しています。私の問題は、データベースが同じ販売の2つのレコードを作成し、同じ販売のための両方のステータスが「完了」であるものとを含む。PayPal IPN - データベースにデータを保存し、更新して削除する
同じ 'txn_id'の販売がある場合は、 'payment_status'行を更新するだけで、または新しい情報で更新する前にすべてを削除することができます。異なる2つの行、 'payment_status'と 'createdtime'があることに注意してください。
function updatePayments($data){
global $link;
if(is_array($data)){
$sql = mysql_query("INSERT INTO `payments` (txnid, payment_amount, payment_status, item_name, receiver_email, payer_email, custom, itemid, createdtime) VALUES (
'".$data['txn_id']."' ,
'".$data['payment_amount']."' ,
'".$data['payment_status']."' ,
'".$data['item_name']."' ,
'".$data['receiver_email']."' ,
'".$data['payer_email']."' ,
'".$data['custom']."' ,
'".$data['itemid']."' ,
'".date("Y-m-d H:i:s")."'
)", $link);
return mysql_insert_id($link);
}
}
データベース構造
CREATE TABLE IF NOT EXISTS `payments` (
`id` int(6) NOT NULL AUTO_INCREMENT,
`txnid` varchar(20) NOT NULL,
`payment_amount` decimal(7,2) NOT NULL,
`payment_status` varchar(25) NOT NULL,
`item_name` varchar(50) NOT NULL,
`receiver_email` varchar(50) NOT NULL,
`payer_email` varchar(50) NOT NULL,
`custom` varchar(25) NOT NULL,
`itemid` varchar(25) NOT NULL,
`createdtime` datetime NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
質問をデータベース構造で更新するだけですが、例を投稿することはできますか(私はデータベースを初めて使用しています)。 – user983248
@ user983248:上記を参照してください。 – eggyal
オレンジ色のボックスは、1分で回答を受け入れることができると言います。どうもありがとう !!! – user983248