2013-06-05 73 views
0

好的!我有一個腳本,這是一個現場拍賣的一部分,我的代碼不是全部正常工作,而且我處於我的繩索末端!下面的代碼是這兩種方式我都沒有運氣嘗試:運行多個查詢和一次

<? if(isset($_GET['golive'])) { 

    $id = $_POST['id']; 
    $totalamount = $_POST['amount']; 
    $ordernumber = $_POST['ordernumber']; 

    mysql_connect("localhost","DBusername","DBpassword") or die(mysql_error()); 
    mysql_select_db("DBname") or die(mysql_error(header('Location: live_auction.php?ordermun=error'))); 

    mysql_query("INSERT INTO auction_bundle 
    (`purchaser_id`,`amount`,`order_number`,`date`) VALUES (".$id.",".$totalamount.",".$ordernumber.",NOW()) 
    UPDATE auction_products SET order_number=".$ordernumber." WHERE on_now=1;    
    UPDATE auction_products SET sold=1 WHERE on_now=1; 
    UPDATE auction_products SET on_now=3 WHERE on_now=1"); 
    header('Location: live_auction.php?ordermun='.$ordernumber.''); 

    } 
    ?> 

我也試過

<? if(isset($_GET['golive'])) { 

    $id = $_POST['id']; 
    $totalamount = $_POST['amount']; 
    $ordernumber = $_POST['ordernumber']; 

    mysql_connect("localhost","DBusername","DBpassword") or die(mysql_error()); 
    mysql_select_db("DBname") or die(mysql_error(header('Location: live_auction.php?ordermun=error'))); 

    mysql_query("INSERT INTO auction_bundle 
    (`purchaser_id`,`amount`,`order_number`,`date`) VALUES (".$id.",".$totalamount.",".$ordernumber.",NOW()"); 

    mysql_query("UPDATE auction_products SET order_number=".$ordernumber." WHERE on_now=1");    
    mysql_query("UPDATE auction_products SET sold=1 WHERE on_now=1"); 
    mysql_query("UPDATE auction_products SET on_now=3 WHERE on_now=1"); 
    header('Location: live_auction.php?ordermun='.$ordernumber.''); 

    } 
    ?> 

這第二個是能夠改變auction_products表,但仍然不會INSERT和其他查詢。我錯過了什麼。我需要在點擊高爾夫球按鈕時發生所有這四種情況。

+1

你可能需要包裝在單引號查詢的值。如果在每個查詢的末尾添加'或者死亡(mysql_error())',那麼如果查詢不起作用,您可以確切地看到數據庫返回的內容 - 您當前假設所有內容都始終有效。 – andrewsi

+0

你是否得到任何錯誤。 –

+0

您應該停止使用mysql_ *函數並切換到mysqli或PDO(您也可以使用Doctrine之類的工具進行抽象)。另外,您不應將用戶輸入直接傳遞到查詢的文本中。你正在乞求SQL注入攻擊。如果你切換到mysqli或PDO,你可以做參數化查詢幫助解決sql注入問題。 –

回答

0

您的插入查詢不起作用,因爲您忘記了a)。

mysql_query("INSERT INTO auction_bundle 
    (`purchaser_id`,`amount`,`order_number`,`date`) VALUES (".$id.",".$totalamount.",".$ordernumber.",NOW()"); 

應該是:

mysql_query("INSERT INTO auction_bundle 
    (`purchaser_id`,`amount`,`order_number`,`date`) VALUES (".$id.",".$totalamount.",".$ordernumber.",NOW())");