2016-08-09 20 views
1

ストーリーを説明してみましょう。ユーザーがウェブサイトから参加したり追跡したりすることができるウェブサイトを開始しています。ロッカーコードでテーブルに「ペイアウト」を挿入するポストバックリンクを作成したい、しかし、私は試してみて、それをテストするとき、それはロッカーのポストバックURLコード

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

私は、このエラーが発生しますので、ここで私が使用し...

<?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を追跡しようとしているコードがあります彼らは払い戻しを受けるということです。私は同じaffsubsと行に挿入したいと思います。

答えて

0

$aff_sub1$aff_sub2payoutなどを確認してから、bind_paramを呼び出して設定されていることを確認してください。

$_GETから変数を取得しているので、ポストバックリンクがGETメソッドによって呼び出されていることも確認してください。

関連する問題