php - duplicate ID even when no data in database -
i have pdo query check duplicate txn_id in database. @ moment database has no record.
everytime run ipn script on paypal sandbox keep getting email saying duplicate transaction id. dont it. have no record in database transaction should have gone though.
can spot error please.
$this_txn = $_post['txn_id']; $stmt = $conn->prepare(" select txn_id transactions txn_id =:txn_id limit 1 "); $stmt->bindparam('txn_id',$this_txn); $stmt->execute(); $rows = $stmt->fetchall(pdo::fetch_assoc); if ($rows > 0) { $messagerr = "duplicate transaction id."; mail("example@test.com", "duplicate txn_id in ipn system", $messagerr, "from: test@example.com" ); exit(); }
use stmt->rowcount() > 0 instead, fetchall returns array
edit
change:
$rows = $stmt->fetchall(pdo::fetch_assoc); if ($rows > 0) { $messagerr = "duplicate transaction id."; mail("example@test.com", "duplicate txn_id in ipn system", $messagerr, "from: test@example.com" ); exit(); } to:
$rows = $stmt->fetchall(pdo::fetch_assoc); if ($stmt->rowcount() > 0) { $messagerr = "duplicate transaction id."; mail("example@test.com", "duplicate txn_id in ipn system", $messagerr, "from: test@example.com" ); exit(); } this checks number of rows affected last sql statement. original code doesn't work because returns array. if no rows, $rows eaual array()
Comments
Post a Comment