2011-06-29 13 views
1

このプリペアドステートメントでは、ほんの数時間前に学んだしかし、私はすべてのIDBSを試してみました、 しかし、リターンとして常に0いただきました間違った私はプリペアドステートメントを持っている

$ip = $data 
$stmt = $mysqli->prepare("SELECT counter_ip 
          FROM counter_out 
          WHERE counter_ip = ?"); 
$stmt->bind_param('s', $ip); 
$stmt->execute; 
$stmt->bind_result($r_ip); 
$stmt->fetch(); 
echo "<pre>"; 
echo $r_ip; 
echo "</pre>"; 

bind_resultを取得する私は、準備されたステートメントなしで、このようにそれを行うときそれは動作します

$sql = "SELECT counter_ip 
       FROM counter_out 
      WHERE counter_ip = '$ip'"; 
$result = $mysqli->query($sql); 
$dupecheck = $result->fetch_assoc(); 
echo "<pre>"; 
echo $dupecheck[counter_ip]; 
echo "</pre>"; 

私は準備文に誤りがありますか?

+1

私は '$ stmt-> execute;は誤植ですか? '$ stmt-> execute();' – jishi

答えて

3
$stmt->execute; 

これは方法です。それはでなければなりません:

$stmt->execute(); 
+0

笑、私はそれを修正するために30分を試​​していた...ありがとう。 – MasterX

+0

@MasterXをリマインダーと同じように:答えがあなたの問題解決に役立った場合は、それをアップヴォート/受け入れ(評判を得ることもできます)してください。 –

+0

ルーカスありがとうございました:) – MasterX

0
$mysqli->prepare("SELECT counter_ip FROM counter_out WHERE counter_ip = :s"); 
+0

オリジナルで何が問題になっていますか? – Jon

+0

あなたは$ stmt-> bind_param( 's'、$ ip)をやっています。 あなたはまずparamを設定する必要があります。 – Inoryy

関連する問題