I have a data and query as below:
$msg = 'ABCDEFGH|AMI16025|GCIT4717730132|454627-028411|2.00|CIT|472642|03|INR|DIRECT|NA|NA|NA|31-08-2016 12:07:54|0300|NA|nitish.dola@gmail.com|09706125041|NA|NA|NA|NA|NA|NA|Success|8B4CB175614193B447959AD852B114FD709E6664FAC0566C0566B440BB8EA446';
$splitdata = explode('|', $msg);
$customer_id = $splitdata[1];
$transaction_id = $splitdata[2];
$bank_id = $splitdata[5];
$bank_merchant_id = $splitdata[6];
$trans_type = $splitdata[7];
$pay_date = date('Y-m-d H:i:s', strtotime($splitdata[13]));
$response_message = '';
$response_message .= $splitdata[24];
$amount_paid = $splitdata[4];
$bank_response_code = $splitdata[14];
$curreny = $splitdata[8];
if($bank_response_code == "0300") // success trans condition
{
$success = true;
//update the database
$sql = "UPDATE ami_delegate_payments SET
payment_status = :payment_status,
amount_paid = :amount_paid,
pay_date = :pay_date,
payment_type = :payment_type,
transaction_id = :transaction_id,
bank_id = :bank_id,
bank_merchant_id = :bank_merchant_id,
bank_response_code = :bank_response_code,
bank_message = :msg,
curreny = :curreny
WHERE customer_id = :customer_id";
$pdo->beginTransaction();
try {
$stmt = $pdo->prepare($sql);
$payment_status = 1;
$stmt->bindParam(':payment_status', $payment_status, PDO::PARAM_STR);
$stmt->bindParam(':amount_paid', $amount_paid, PDO::PARAM_STR);
$stmt->bindParam(':pay_date', $pay_date, PDO::PARAM_STR);
$stmt->bindParam(':payment_type', $payment_type, PDO::PARAM_STR);
$stmt->bindParam(':transaction_id', $transaction_id, PDO::PARAM_STR);
$stmt->bindParam(':bank_id', $bank_id, PDO::PARAM_STR);
$stmt->bindParam(':bank_merchant_id', $bank_merchant_id, PDO::PARAM_STR);
$stmt->bindParam(':bank_response_code', $bank_response_code, PDO::PARAM_STR);
$stmt->bindParam(':msg', $msg, PDO::PARAM_STR);
$stmt->bindParam(':curreny', $curreny, PDO::PARAM_STR);
$stmt->bindParam(':customer_id', $customer_id, PDO::PARAM_STR);
$stmt->execute();
var_dump($stmt->debugDumpParams);
if($stmt->rowCount()) {
echo 'Added';
}else{
echo 'No';
}
exit;
}catch (PDOException $e) {
var_dump($e); exit;
}
Tghough I am always getting output as
NULLED Added
the data is not updated actually ! Whats wrong . The customer id AMI16025
exists in database
you call beginTransaction()
but don't commit()
so PDO automatically does a rollback()
From manual
if you didn't explicitly commit the transaction, then it is assumed that something went awry, so the rollback is performed for the safety of your data.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.