2016-08-04 38 views
0

在那裏我想更新和創建一個條件,所以當我創建一個新的記錄,自動更新我的數據,如果我有成功使新的。PHP插入和更新多個查詢和表

我在這裏的PHP:

<?php 
require "dbconnection.php"; 

$a = array(); 
$a['transidmerchant'] = $_POST['TRANSIDMERCHANT']; 
$a['totalamount'] =$_POST['AMOUNT']; 
$a['words'] = $_POST['WORDS']; 
$a['payment_channel'] = $_POST['PAYMENTCHANNEL']; 
$a['session_id'] = $_POST['SESSIONID']; 
$a['payment_date_time'] = $_POST['REQUESTDATETIME']; 
$a['trxstatus'] = 'Requested'; 
$query = "INSERT INTO doku (transidmerchant,totalamount,words,payment_channel,session_id,payment_date_time,trxstatus) 
VALUES ('$_POST[TRANSIDMERCHANT]','$_POST[AMOUNT]','$_POST[WORDS]','$_POST[PAYMENTCHANNEL]','$_POST[SESSIONID]','$_POST[REQUESTDATETIME]','Requested')"; 

$sql = "UPDATE orders SET status='Paid' where id='$_POST[TRANSIDMERCHANT]'"; 
if(mysqli_query($con,$query)) { 
    mysqli_connect($con,$sql); 
    echo 1; 
}else{ 
    echo("Error description: " . mysqli_error($con)); 
} 

我的查詢:$query$sql

我希望我的$sql它的更新時$query是成功創建

+1

你永遠不會運行$查詢,你從來沒有使用所有$ a數組你創建的變量,你打開sql注入。除了那個im甚至不知道什麼是 – 2016-08-04 03:45:41

+0

MySql <> Sql Server。 –

+0

請參閱插入..在重複鍵上。 – Strawberry

回答

0
if (mysqli_query($con, $query) === true) { 
    mysqli_query($con, $sql); 
    echo 1; 
} else { 
    echo('Error description: ' . mysqli_error($con)); 
} 
0

創建一個存儲過程插入然後更新。你可能想要做這樣的事情來讓你遠離發出常規查詢來檢查子查詢並將你轉移到創建一個存儲過程。

創建你的程序到下面類似的東西,並在你的sql對話框中運行它。一旦您完成後,運行它:

DELIMITER // 
CREATE PROCEDURE Payment 
(
a_transidmerchant int, 
a_atotalamount float, 
a_words varchar(200), 
a_payment_channel varchar(200), 
a_session_id int, 
a_payment_date_time datetime, 
etc... 
) 
BEGIN 
insert into doku(field_name1, field_name2, field_name3, field_name4) values(a_field1, a_field2, a_field3, a_field4); 
END // 
DELIMITER; 

現在,在你的PHP文件,請執行下列操作:

if(isset($_POST[transidmerchantid])) /**** start a post check ****/ 
            //before you touch the db 
{ 
$con = mysqli_connect("localhost","user","pass","database"); 

//start defining variables 
$transidmerchantid = $_POST[name]; 
$totalamount = $_POST[course]; 
$words = $_POST[words]; 

//calling stored procedure - call values for parameters in stored procedure 
$sql = "CALL Payment('$transidmerchantid','$totalamount','$words')"; // <---- 

//in the order of operation, meaning once you have inserted the data, 
//you can update the table. you're automatically updating the table row 
//based on a successful insert, which is after calling the insert row   
//stored procedure. 

$result = mysqli_query($con,$sql); 
if($result) //insert successful. 
    echo "Record Added Successfully!"; 
    $sql = "UPDATE orders SET status='Paid' where id='$_POST[TRANSIDMERCHANT]'"; 
    mysqli_query($con,$query); 
}else{ 
    echo("Error description: " . mysqli_error($con)); 
}else{ 
    echo "Record Not added!"; //insert unsuccessful. 
} 

} /**** end post check ****/