我正在使用PDO将数据插入表格并使用PDO更新我的数据库中的表格。
我正在使用过去曾多次使用过的声明,但由于某种原因,这次它对准备好的insert语句不起作用。它仅适用于更新声明。
声明如下:
error_reporting(E_ALL);
ini_set('display_errors',1);
//fetching error
$stmt = $pdo->prepare("INSERT INTO tb_beli (username, bank, norek, nama, ec, bitcoin, perfectmoney, fasapay, paket, saldo, amountbtc, phone, email, status, referer, iddb, date, ip, exp, unik,idph, upline, token)
VALUES(:username, :bank, :norek, :nama, :ec, :bitcoin, :perfectmoney, :fasapay, :paket, :saldo, :amountbtc, :phone, :email, :status, :referer, :iddb, :date, :ip, :exp, :unik, :idph, :upline, :token)");
$stmt ->execute(array(':username' => $kuriree, ':bank' => $bankee, ':norek' => $norekee, ':nama' => $namaee, ':ec' => $matauang, ':bitcoin' => $bitcoinee, ':perfectmoney' => $pmee, ':fasapay' => $fasapayee, ':paket' => $paketzee, ':saldo' => $surabayae, ':amountbtc' => $convertbtc2, ':phone' => $phoneee, ':email' => $emailee, ':status' => $status1,':referer' => $kurirz,':iddb' => $idnyaz,':date' => $skrg,':ip' =>$laip ,':exp' => $exp,':unik' => $unikee,':idph' => $idnyaee,':upline' => $mangkosim,':token' => $unikeef ));
//
//echo done
$stmt = $pdo->prepare("INSERT INTO tb_jual (username, bank, norek, nama, ec, bitcoin, perfectmoney, fasapay, paket, saldo, amountbtc, phone, email, status, date, ip, idgh, token)
VALUES(:username, :bank, :norek, :nama, :ec, :bitcoin, :perfectmoney, :fasapay, :paket, :saldo, :amountbtc, :phone, :email, :status, :date, :ip, :idgh, :token)");
$stmt ->execute(array(':username' => $kurirz, ':bank' => $bankeem, ':norek' => $norekeem, ':nama' => $namaeem, ':ec' => $matauang, ':bitcoin' => $bitcoineem, ':perfectmoney' => $pmeem, ':fasapay' => $fasapayeem, ':paket' => $paketzee, ':saldo' => $surabayae, ':amountbtc' => $convertbtc2, ':phone' => $phoneeem, ':email' => $emaileem, ':status' => $status2, ':date' => $skrg, ':ip' => $laip, ':idgh' => $idnyaz, ':token' => $unikeef));
//
//echo done
$stmt= $pdo->prepare("UPDATE tb_ph SET saldo= (saldo - :saldo) where id=:id ");
$stmt ->execute(array(':id' => $idnyaee, ':saldo' => $surabayae));
//
//echo done
$stmt= $pdo->prepare("UPDATE tb_gh SET saldo= (saldo - :saldo) where id=:id");
$stmt->execute(array(':id' => $idnyaz , ':saldo' => $surabayae));
//echo done
//array ends here for checkup
但不幸的是,这总是返回到TRUE
而没有任何数据到数据库表。只更新,这应该是在插入我的数据库后完成的。
我已经尝试过对我能想到的陈述的每一个组合变化,但我仍然感到茫然。它也不会返回任何错误。
答案 0 :(得分:2)
只需删除Execute语句中的冒号(:),如下所示,
以下代码为我工作(添加了测试值)。
$statement = $link->prepare("INSERT INTO tb_beli(username, bank, norek, nama, ec, bitcoin, perfectmoney, fasapay, paket, saldo, amountbtc, phone, email, status, referer, iddb, date, ip, exp, unik,idph, upline, token)
VALUES(:username, :bank, :norek, :nama, :ec, :bitcoin, :perfectmoney, :fasapay, :paket, :saldo, :amountbtc, :phone, :email, :status, :referer, :iddb, :date, :ip, :exp, :unik, :idph, :upline, :token)");
$kuriree = 'bb';
$bankee = 'cc';
$norekee = 'cc';
$namaee = 'cc';
$matauang = 'cc';
$bitcoinee = 'cc';
$pmee = 'cc';
$fasapayee = 'cc';
$paketzee = 'cc';
$surabayae = 'cc';
$convertbtc2 = 'cc';
$phoneee = 'cc';
$emailee = 'cc';
$status1 = 'cc';
$kurirz = 'cc';
$idnyaz = 'cc';
$skrg = 'cc';
$laip = 'cc';
$exp = 'cc';
$unikee = 'cc';
$idnyaee = 'cc';
$mangkosim = 'cc';
$unikeef = 'aa';
$ret = $statement->execute(array('username' => $kuriree, 'bank' => $bankee, 'norek' => $norekee, 'nama' => $namaee, 'ec' => $matauang, 'bitcoin' => $bitcoinee, 'perfectmoney' => $pmee, 'fasapay' => $fasapayee, 'paket' => $paketzee, 'saldo' => $surabayae, 'amountbtc' => $convertbtc2, 'phone' => $phoneee, 'email' => $emailee, 'status' => $status1,'referer' => $kurirz,'iddb' => $idnyaz,'date' => $skrg,'ip' =>$laip ,'exp' => $exp,'unik' => $unikee,'idph' => $idnyaee,'upline' => $mangkosim,'token' => $unikeef ));
if($ret)
print '1 row Inserted';
else
print 'Error in Inserting';
答案 1 :(得分:1)
您似乎每次都覆盖$stmt
变量,因此只有一个$stmt
可以正常工作,最后一个更新可能会有效。
试试这可能就是你要找的东西:
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
try {
$pdo->beginTransaction();
//fetching error
if ($stmt = $pdo->prepare("INSERT INTO tb_beli (username, bank, norek, nama, ec, bitcoin, perfectmoney, fasapay, paket, saldo, amountbtc, phone, email, status, referer, iddb, date, ip, exp, unik,idph, upline, token)
VALUES(:username, :bank, :norek, :nama, :ec, :bitcoin, :perfectmoney, :fasapay, :paket, :saldo, :amountbtc, :phone, :email, :status, :referer, :iddb, :date, :ip, :exp, :unik, :idph, :upline, :token)")) {
if (!$stmt->execute(array(
':username' => $kuriree,
':bank' => $bankee,
':norek' => $norekee,
':nama' => $namaee,
':ec' => $matauang,
':bitcoin' => $bitcoinee,
':perfectmoney' => $pmee,
':fasapay' => $fasapayee,
':paket' => $paketzee,
':saldo' => $surabayae,
':amountbtc' => $convertbtc2,
':phone' => $phoneee,
':email' => $emailee,
':status' => $status1,
':referer' => $kurirz,
':iddb' => $idnyaz,
':date' => $skrg,
':ip' => $laip,
':exp' => $exp,
':unik' => $unikee,
':idph' => $idnyaee,
':upline' => $mangkosim,
':token' => $unikeef
))) {
$error = $stmt->errorInfo();
throw new Exception($error);
}
if ($stmt_two = $pdo->prepare("INSERT INTO tb_jual (username, bank, norek, nama, ec, bitcoin, perfectmoney, fasapay, paket, saldo, amountbtc, phone, email, status, date, ip, idgh, token)
VALUES(:username, :bank, :norek, :nama, :ec, :bitcoin, :perfectmoney, :fasapay, :paket, :saldo, :amountbtc, :phone, :email, :status, :date, :ip, :idgh, :token)")) {
if (!$stmt_two->execute(array(
':username' => $kurirz,
':bank' => $bankeem,
':norek' => $norekeem,
':nama' => $namaeem,
':ec' => $matauang,
':bitcoin' => $bitcoineem,
':perfectmoney' => $pmeem,
':fasapay' => $fasapayeem,
':paket' => $paketzee,
':saldo' => $surabayae,
':amountbtc' => $convertbtc2,
':phone' => $phoneeem,
':email' => $emaileem,
':status' => $status2,
':date' => $skrg,
':ip' => $laip,
':idgh' => $idnyaz,
':token' => $unikeef
))) {
throw new Exception($stmt_two->errorInfo());
}
}
if ($stmt_three = $pdo->prepare("UPDATE tb_ph SET saldo= (saldo - :saldo) where id=:id ")) {
if (!$stmt_three->execute(array(
':id' => $idnyaee,
':saldo' => $surabayae
))) {
throw new Exception($stmt_three->errorInfo());
}
}
if ($stmt_four->$pdo->prepare("UPDATE tb_gh SET saldo= (saldo - :saldo) where id=:id")) {
if (!$stmt_four->execute(array(
':id' => $idnyaz,
':saldo' => $surabayae
))) {
throw new Exception($stmt_four->errorInfo());
}
}
}
if ($pdo->commit()) {
echo "Data Proccessing complete";
} else {
throw new Exception('Transaction commit failed.');
}
}
catch (Exception $e) {
try {
// something went wrong, we have to rollback
$pdo->rollback();
// and display the error message
echo "error : " . $e->getMessage();
}
catch (Exception $f) {
// and display the error message
echo "error" . $f->getMessage();
}
}
?>