2013-08-07 2 views
0

mysqli에서 이와 같은 작업을 수행 할 수 있습니까? 나는에가는 것도 점점없는거야.더블 삽입 문제 MYSQLI

// Place the transaction into the database 
    $sql = "INSERT INTO transactions (product_id_array, email, first_name, last_name, payment_date, mc_gross, payment_currency, txn_id, receiver_email, payment_type, payment_status, txn_type, payer_status, address_street, address_city, address_state, address_zip, address_country, address_status, notify_version, verify_sign, payer_id, mc_currency, mc_fee, ip, username)  
     VALUES('$custom','$payer_email','$first_name','$last_name','$payment_date','$mc_gross','$payment_currency','$txn_id','$receiver_email','$payment_type','$payment_status','$txn_type','$payer_status','$address_street','$address_city','$address_state','$address_zip','$address_country','$address_status','$notify_version','$verify_sign','$payer_id','$mc_currency','$mc_fee','$ip','$user_name')"; 
     $uid = mysqli_insert_id($db_conx); 
      $sql .= "INSERT INTO courseprogress (id, product_id_array, email, username) VALUES ('$uid','$custom','$payer_email','$username')"; 
      $query = mysqli_query($db_conx, $sql); 
    // 

나는 단지 낮은에 불구하고 통과 첫 번째를 얻을 수있었습니다이

$sql = "INSERT INTO transactions (product_id_array, email, first_name, last_name, payment_date, mc_gross, payment_currency, txn_id, receiver_email, payment_type, payment_status, txn_type, payer_status, address_street, address_city, address_state, address_zip, address_country, address_status, notify_version, verify_sign, payer_id, mc_currency, mc_fee, ip, username)  
     VALUES('$custom','$payer_email','$first_name','$last_name','$payment_date','$mc_gross','$payment_currency','$txn_id','$receiver_email','$payment_type','$payment_status','$txn_type','$payer_status','$address_street','$address_city','$address_state','$address_zip','$address_country','$address_status','$notify_version','$verify_sign','$payer_id','$mc_currency','$mc_fee','$ip','$user_name')"; 
$query = mysqli_query($db_conx, $sql); 
//added as addition for newsletter signup below 
      $uid = mysqli_insert_id($db_conx); 
      $sqlemail = "INSERT INTO courseprogress (id, product_id_array, email,username) VALUES ('$uid','$custom','$payer_email','$username')"; 
      $query = mysqli_query($db_conx, $sqlemail); 
    // 

처럼 두 개의 문을 사용하려고했습니다 시도 ... 어떤 제안?

+0

괜찮아 보입니다. 이 경우 두 번째 쿼리에서 얻은 오류는 무엇입니까? 결과에 오류가 있는지 확인하십시오. 또한 SQL 인젝션에 취약 할 가능성이 큽니다. 문자열이 올바르게 이스케이프 처리되었는지 또는 매개 변수화 된 구문을 대신 사용하는지 확인하십시오. – viraptor

+0

@viraptor 정보를 주셔서 감사합니다 ... 내 문제는이 페이지를 방문했을 때 실행되지 않는 포함 된 스크립트입니다. 그것은 내 사이트에서 발생합니다 (기술적으로는 아닙니다). 그것은 사용자가 paypal에서 지불 할 때 IPN의 일부분입니다. 그래서 그것은 PHP 자체가 아니라면 오류를 얻을 수 없습니다 ... 아니 mysqli statemtns. 내가 아는 건 두 번째 문장이 삽입되어 있지 않다는 것뿐입니다. – Chris

+0

php.ini에서 오류 및 경고 로깅을 켤 수 있습니다. cli 또는 웹 서버를 통해 스크립트를 실행하든 (어떤 경우에 해당하는지 이해할 수 없음) 모든 문제가 기록됩니다. 또는 직접 오류를 기록 할 수 있습니다. mysqli_query (...)의 결과가 === FALSE인지 확인한다. 그렇다면, http://www.php.net/manual/en/mysqli.error.php의 결과를 인쇄/로깅하십시오 - 잘못된 점을 알려줄 것입니다. – viraptor

답변

0

잘못된 장소에 $ db_conx 데이터가있는 경우 동일한 문에 있어야합니다. 당신은 SQL을 업그레이드 했습니까? 나는 그것을했고, 내가 만든 모든 프로젝트를 재구성해야했습니다. 데이터 또는 전역 데이터를 보유하고 $ db_conx를 명령문 또는 함수에서 재 선언 할 함수를 작성하십시오.