2016-08-09 2 views
1

이야기를 설명하겠습니다. 사용자가 웹 사이트에 가입하고 물건을 추적 할 수있는 웹 사이트를 시작할 때 라커 코드가있는 테이블에 '지불금'을 삽입하는 포스트 백 링크를 만들고 싶습니다. 나는 시도하고 그것을 테스트 할 때, 그것은 포스트 백 URL 코드 로커

<?php 

define("MYSQL_HOST", "localhost"); 
define("MYSQL_PORT", "3306"); 
define("MYSQL_DB", "dbuser"); 
define("MYSQL_TABLE", "userpayout"); 
define("MYSQL_USER", "user"); 
define("MYSQL_PASS", "dbpassweord"); 

$mysqli = new mysqli(MYSQL_HOST, MYSQL_USER, MYSQL_PASS, MYSQL_DB); 
if ($mysqli->connect_errno) 
{ 
    echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . 
$mysqli->connect_error; 
} 
$aff_sub1 =   $_GET['aff_sub']; 
$aff_sub2 =   $_GET['aff_sub']; 
$aff_sub3 =   $_GET['aff_sub']; 
$aff_sub4 =   $_GET['aff_sub']; 
$aff_sub5 =   $_GET['aff_sub']; 
$aff_sub6 =   $_GET['aff_sub']; 
$payout  =   $_GET['payout']; 


if (!($stmt = $mysqli->prepare("UPDATE ".MYSQL_DB.".".MYSQL_TABLE." SET 
payout=payout+(?) WHERE aff_sub1=(?)"))) 
{ 
    echo "Prepare failed: (" . $mysqli->errno . ") " . $mysqli->error; 
} 
$stmt->bind_param('ds', $aff_sub1, $aff_sub2, $aff_sub3, $aff_sub4, $aff_sub5, $aff_sub5, $payout); 
if (!$stmt->execute()) 
{ 
    echo "Execute failed: (" . $stmt->errno . ") " . $stmt->error; 
} 
else 
{ 
    printf("%d Row updated, added $".$payout." to locker ".$aff_sub1." .\n", 

mysqli_stmt_affected_rows($stmt)); 
} 

?> 

그래서 나는 로커는 여러 aff_subs을 추적하기 위해 노력하고 ...

Execute failed: (2031) No data supplied for parameters in prepared statement 

그래서 여기에 날이 오류를 제공 내가 사용하는 코드입니다 그들은 지불금을받습니다. 같은 affsubs 행에 삽입하고 싶습니다.

답변

0

$aff_sub1, $aff_sub2, payout 등을 확인한 후 bind_param을 호출하여 설정되어 있는지 확인하십시오.

또한 $_GET에서 변수를 검색하므로 GET 메서드를 통해 포스트 백 링크가 호출되는지 확인하십시오.