2015-07-13 77 views
1

随着下面的代码,我想更新一个表使用后值。更新后,与我相同的变量,我试图将值插入另一个表,如果条件。第一次更新工作正常,但插入没有发生。PHP的MySQL更新和插入,如果条件满足

<?php 
if (isset($_POST['submit'])) { 
    $wlnid=$_POST['wlt_ln_id']; 
    $refwal = $_POST['wlt_name']; 
    $refamt = $_POST['wlt_ln_refund_amt']; 
    $refdtls = $_POST['wlt_ln_txn_details']; 
    $refdate = $_POST['wlt_ln_refund_date']; 
    $lntype = $_POST['wlt_ln_type']; 

     $query=mysqli_query($GLOBALS["___mysqli_ston"], "update wallet_loans set wlt_ln_refund_acct = '$refwal',wlt_ln_refund_amt=wlt_ln_refund_amt+'$refamt',wlt_ln_refund_txn_details='$refdtls',wlt_ln_refund_date='$refdate' where wlt_ln_id = '$wlnid'and wlt_holder_id = '{$_SESSION['SESS_MEMBER_ID']}'"); 

     if($lntype == 'Given'){ 
      $sql = "INSERT INTO wallet_txns(wlt_name, wlt_txn_date, wlt_txn_type, wlt_drcr_cod, wlt_txn_amount, wlt_txn_dtls, wlt_txn_cat, wlt_txn_cat_sub, wlt_amt_payee, wlt_holder_id, wlt_txn_flg_loan, wlt_txn_ln_id, wlt_txn_flg_recr, wlt_txn_recr_id) VALUES ('$refwal', '$refdate', 'Income','C', '$refamt', '$refdtls', 'Loan refund','Null','Null', '{$_SESSION['SESS_MEMBER_ID']}', 'Y','$wlnid', 'N',0)"; 
     } 

     else if($lntype == 'Received'){ 
      $sql = "INSERT INTO wallet_txns(wlt_name, wlt_txn_date, wlt_txn_type, wlt_drcr_cod, wlt_txn_amount, wlt_txn_dtls, wlt_txn_cat, wlt_txn_cat_sub, wlt_amt_payee, wlt_holder_id, wlt_txn_flg_loan, wlt_txn_ln_id, wlt_txn_flg_recr, wlt_txn_recr_id) VALUES ('$refwal', '$refdate', 'Expense','D', '$refamt', '$refdtls', 'Loan refund','Null','Null', '{$_SESSION['SESS_MEMBER_ID']}', 'Y','$wlnid', 'N',0)"; 
     } 
}?> 

高级谢谢所有支持。

+2

$ lntype是什么?我没有看到你在if之后执行SQL查询。 – Blaatpraat

+0

你很容易受到[sql注入攻击](http://bobby-tables.com)的影响。 –

+0

$ lntype是我的html页面中的一个文本选择字段,其值(给定和收到)。基于给定或接收我插入到另一个表。 –

回答

1

在你的代码中,你永远不会用你的sql查询调用mysqli_query

if ($lntype == 'Given') { 
    $sql = "INSERT INTO wallet_txns(wlt_name, wlt_txn_date, wlt_txn_type, wlt_drcr_cod, wlt_txn_amount, wlt_txn_dtls, wlt_txn_cat, wlt_txn_cat_sub, wlt_amt_payee, wlt_holder_id, wlt_txn_flg_loan, wlt_txn_ln_id, wlt_txn_flg_recr, wlt_txn_recr_id) VALUES ('$refwal', '$refdate', 'Income','C', '$refamt', '$refdtls', 'Loan refund','Null','Null', '{$_SESSION['SESS_MEMBER_ID']}', 'Y','$wlnid', 'N',0)"; 
     mysqli_query($GLOBALS["___mysqli_ston"], $sql); 
} 
else if($lntype == 'Received'){ 
    $sql = "INSERT INTO wallet_txns(wlt_name, wlt_txn_date, wlt_txn_type, wlt_drcr_cod, wlt_txn_amount, wlt_txn_dtls, wlt_txn_cat, wlt_txn_cat_sub, wlt_amt_payee, wlt_holder_id, wlt_txn_flg_loan, wlt_txn_ln_id, wlt_txn_flg_recr, wlt_txn_recr_id) VALUES ('$refwal', '$refdate', 'Expense','D', '$refamt', '$refdtls', 'Loan refund','Null','Null', '{$_SESSION['SESS_MEMBER_ID']}', 'Y','$wlnid', 'N',0)"; 
    mysqli_query($GLOBALS["___mysqli_ston"], $sql); 
} 
+0

'mysqli_query($ sql);'不正确。第一个参数是数据库连接对象。检查你的code.thanks。 –

+0

@OptimusCrime感谢您的提示......我忘了它....现在它的工作...更新的代码。 '$ SQL = mysqli_query($ GLOBALS [ “___ mysqli_ston”],“INSERT INTO wallet_txns(wlt_name,wlt_txn_date,wlt_txn_type,wlt_drcr_cod,wlt_txn_amount,wlt_txn_dtls,wlt_txn_cat,wlt_txn_cat_sub,wlt_amt_payee,wlt_holder_id,wlt_txn_flg_loan,wlt_txn_ln_id,wlt_txn_flg_recr,wlt_txn_recr_id)VALUES(' $ refwal','$ refdate','Income','C','$ refamt','$ refdtls','Loan refund','Null','Null','{$ _SESSION ['SESS_MEMBER_ID']} ','Y','$ wlnid','N',0)“);' –

+0

谢谢@anantkumarsingh。我更新了代码。我试着在[docs](http://php.net/mysqli_query)中查找并查看错误的方法。 – OptimusCrime