2017-08-01 117 views
-1

我插入数据到表中,并使用PDO更新我的数据库中的表,我承认这不是最了解的。PDO查询没有插入,也没有抛出错误

我正在使用过去多次使用过的语句,但由于某种原因,这次它不适用于准备好的插入语句。它只适用于更新声明。

声明如下:

 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

在interweb帽=大喊 – rtfm

+1

你不这样做实际上并不检查错误 –

+0

两个插入失败? – chris85

回答

2

只需删除冒号(:)在执行语句如下,

下面的代码为我工作(加入测试值)。

$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'; 
+0

感谢您的帮助。但仍然没有解决办法。只有更新的方面完美。 –

+0

插入不工作? (你有你给ID为主键,并设置为自动增量?) –

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(); 
    } 
} 

?> 
+0

试过这个,但现在即使在出现错误报告时仍显示空白屏幕 –

+0

检查您的错误日志它说什么@LegiSmith –

相关问题