Проблема с запросом на вставку mysql при возврате на сайт из PayPal платежа - PullRequest
0 голосов
/ 24 марта 2011

Я застрял во время процесса отладки сайта, который я строю, и я мог бы использовать некоторую помощь.

Сайт представляет собой сайт с фиксированной ценой (похожий на fiverr). Таким образом, «покупатель» покупает работу у «продавца» и оплачивает сумму онлайн. Деньги временно остаются на сайте PayPal. Поэтому, когда работа завершена, продавец может «снять» деньги, и администратор должен перевести их на счет PayPal продавца.

Ниже приведено сообщение, которое я получаю в браузере после того, как я завершила процесс "переноса" в качестве администратора на счет PayPal продавца и возвращаюсь на сайт с помощью кнопки PayPal "вернуться к продавцу".

Что может быть не так с этим SQL-запросом?

CHECK_QUERY insert into `ninerr_admin_order_payment` 

(`order_status_date`,`mc_gross`,`protection_eligibility`,`address_status`,`payer_id`,`tax`,`address_street`,`payment_date`,`payment_status`,`charset`,`address_zip`,`first_name`,`address_country_code`,`address_name`,`notify_version`,`custom`,`payer_status`,`business`,`address_country`,`address_city`,`quantity`,`payer_email`,`verify_sign`,`txn_id`,`payment_type`,`payer_business_name`,`last_name`,`address_state`,`receiver_email`,`receiver_id`,`pending_reason`,`txn_type`,`item_name`,`mc_currency`,`item_number`,`residence_country`,`test_ipn`,`transaction_subject`,`handling_amount`,`payment_gross`,`shipping`,`merchant_return_link`)

VALUES ('2011:03:22','4.00','Ineligible','confirmed','7BV3JALNZYV2W','0.00','1 Main St','12:26:51 Mar 22, 2011 PDT','Pending','windows-1252','95131','Panayiotis','US','Panayiotis Kolevris's Test Store','3.1','','unverified','panayk_1299455633_per@otenet.gr','United States','San Jose','1','panayk_1299526871_biz@otenet.gr','AFcWxV21C7fd0v3bYYYRCpSSRl31AIaMVYBqWOK51ttsVWF3i1gzorhH','9E090982RT6501508','instant','Panayiotis Kolevris's Test Store','Kolevris','CA','panayk_1299455633_per@otenet.gr','DC4DA8HA7Y4U2','verify','web_accept','Withdraw','EUR','1','US','1','Withdraw','0.00','','0.00','Return to Merchant')

Динамический код, который дает вышеуказанный результат, выглядит так:

function dataInsert($table,$dataArray){

 $fldArray=$dataArray;

    $i=0;

    $j=0;

    $sql.="insert into `".$table."` (";

    while (list($key1, $value1) = each ($fldArray)) {

        $sql.="`".$key1."`";

        $j++;

        if($j!=count($fldArray)){

        $sql.=",";

        }

        if($j==count($fldArray)){

        $sql.=") VALUES (";

        }

    }



        while (list($key1, $value1) = each ($dataArray)) {

        $sql.="'".$value1."'";

        $i++;

        if($i!=count($dataArray)){

            $sql.=",";

        }

        if($i==count($dataArray)){

        $sql.=")";

        }

    }

mysql_query($sql) or die(CHECK_QUERY.$sql);

$id=mysql_insert_id();

return $id;

}

Заранее спасибо

Ответы [ 2 ]

1 голос
/ 24 марта 2011

У вас есть ошибка на INSERT INTO из-за цитаты на ваших данных:

'Испытательный магазин Panayiotis Kolevris'

Чтобы исправить это, попробуйте добавить mysql_escape_string( ):

while (list($key1, $value1) = each ($dataArray)) {
  $sql.= mysql_escape_string( $value1 );
  $i++;
if($i!=count($dataArray)){
  $sql.=",";
}
if($i==count($dataArray)){
  $sql.=")";
}

UPDATE:

Хотя на секунду кажется, что данные по $dataArray уже заключены в кавычки ('). Итак, вы должны экранировать свои данные, прежде чем заполнять их в $dataArray.

0 голосов
/ 24 марта 2011

Что возвращает база данных? Какая ошибка?

Попробуйте использовать следующие инструкции в своем PHP и дать вывод

error_reporting(E_ALL);
ini_set('display_errors', true);
...