簡體   English   中英

PDO查詢連續插入兩次

[英]PDO Query inserting twice in a row

$item_name = $_POST['item_name'];
        $item_number = $_POST['item_number'];
        $payment_status = $_POST['payment_status'];
        $payment_amount = $_POST['mc_gross'];
        $payment_currency = $_POST['mc_currency'];
        $txn_id = $_POST['txn_id'];
        $txn_type = $_POST['txn_type'];
        $receiver_email = $_POST['receiver_email'];
        $payer_email = $_POST['payer_email'];
        $pay_date = $_POST['payment_date'];
        $payment_type = $_POST['payment_type'];


        // Personal information
        $firstname = $_POST['first_name'];
        $lastname = $_POST['last_name'];

        if (isset($_POST['payer_business_name'])) 
            $business = $_POST['payer_business_name'];
        else
            $business = "";

        $address_zip = $_POST['address_zip'];
        $address_street = $_POST['address_street'];
        $address_city = $_POST['address_city'];
        $address_state = $_POST['address_state'];
        $address_country = $_POST['address_country'];
        $address_country_code = $_POST['address_country_code'];

        if (isset($_POST['contact_phone']))
            $payer_phone =  $_POST['contact_phone'];
        else
            $payer_phone = "";    

$array = array(
                ":txn_id" => $txn_id,
                ":payer_firstname" => $firstname,
                ":payer_lastname" => $lastname,
                ":payer_business" => $business,
                ":payer_email" => $payer_email,
                ":payer_country_code" => $address_country_code,
                ":payer_country" => $address_country,
                ":payer_state" => $address_state,
                ":payer_city" => $address_city,
                ":payer_zip" => $address_zip,
                ":payer_street" => $address_street,
                ":payer_phone" => $payer_phone,
                ":payer_type" => $payment_type,
                ":item_name" => $item_name,
                ":item_number" => $item_number,
                ":payment_amount" => $payment_amount,
                ":payment_status" => $payment_status,
                ":payment_currency" => $payment_currency,
                ":date" => $pay_date,
                ":ip" => $client->IP()
        );


        $prepare = $conn->prepare("INSERT INTO transactions ( t_num, t_payer_firstname, t_payer_lastname, t_payer_business, t_payer_email, t_payer_country_code, t_payer_country, t_payer_state, t_payer_city, t_payer_street, t_payer_zip, t_payer_phone, t_payer_type, t_name, t_hex, t_price, t_status, t_currency, t_date, t_ip ) VALUES ( :txn_id, :payer_firstname, :payer_lastname, :payer_business, :payer_email, :payer_country_code, :payer_country, :payer_state, :payer_city, :payer_zip, :payer_street, :payer_phone, :payer_type, :item_name, :item_number, :payment_amount, :payment_status, :payment_currency, :date, :ip ) ");

        if ($prepare->execute($array)) {
            $msg = "<strong>Congratulations " . $lastname . ", " . $firstname . "!</strong>
            <br/>Your order has been placed and will be processed within 12-24 hours!
            <br/><br/>
            <b>Transaction #:</b> " . $txn_id . "<br/>
            <b>Item Name:</b> " . $item_name . "<br/>
            <b>Item Number:</b> " . $item_number . "<br/><br/><br/>
            <b>First Name:</b> " . $first_name . "<br/>
            <b>Last Name:</b> " . $last_name . "<br/>

            ";
        }

由於某種原因,我的查詢將自己插入兩次。...我不知道這是不是if語句檢查rowCount是否大於0造成的問題,還是我對某些事情視而不見?

編輯:編輯后以顯示$ _POST變量。

不知何故,您兩次執行查詢,因為下面是我嘗試使用的代碼,它始終插入一行。

並檢查每個包含索引文件。 或重啟mysql。

<?php
$array = array(
        ":txn_id" => "1",
        ":payer_firstname" => "2",
        ":payer_lastname" => "3",
        ":payer_business" => "4",
        ":payer_email" => "5",
        ":payer_country_code" => "6",
        ":payer_country" => "7",
        ":payer_state" => "8",
        ":payer_city" => "9",
        ":payer_zip" => "10",
        ":payer_street" => "11",
        ":payer_phone" => "12",
        ":payer_type" => "13",
        ":item_name" => "14",
        ":item_number" => "15",
        ":payment_amount" => "16",
        ":payment_status" => "17",
        ":payment_currency" => "18",
        ":date" => "19",
        ":ip" => "20"
);

 $conn = new PDO('mysql:host=localhost;dbname=test', "root", "123456");

 $prepare = $conn->prepare("INSERT INTO transactions ( t_num,   
 t_payer_firstname, t_payer_lastname, t_payer_business, t_payer_email, 
 t_payer_country_code, t_payer_country, t_payer_state, t_payer_city,   
 t_payer_street, t_payer_zip, t_payer_phone, t_payer_type, t_name,  
 t_hex, t_price, t_status, t_currency, t_date, t_ip ) VALUES ( :txn_id, 
 :payer_firstname,
 :payer_lastname,
 :payer_business, 
 :payer_email,  
 :payer_country_code, 
 :payer_country, 
 :payer_state, 
 :payer_city,  
 :payer_zip,  
 :payer_street, 
 :payer_phone, 
 :payer_type, 
 :item_name, 
 :item_number,   
 :payment_amount, 
 :payment_status, 
 :payment_currency, 
 :date, 
 :ip ) ");

$execute = $prepare->execute($array);

if ($execute) {
    echo 'good';
}

?>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM