2011-06-29 56 views
1

我有一份声明中刚刚学到的几个小时前,但我总是得到的回报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我尝试了所有IDBS, 但是,当我做没有准备好的声明中这样它的工作原理

$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->执行;'是一个错字?应该是'$ stmt-> execute();' – jishi

回答

3
$stmt->execute; 

这是一种方法。它应该是:

$stmt->execute(); 
+0

哈哈,该死的,我试着半小时来修复它......谢谢。 – MasterX

+0

@MasterX就像一个提醒:如果一个答案帮助你解决了这个问题,你应该加快/接受它(你也可以为此赢得声誉)。 –

+0

谢谢你lukas :)并完成 – MasterX

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

原文有什么问题? – Jon

+0

以及你正在做一个$ stmt-> bind_param('s',$ ip); 所以你需要设置一个参数第一.. – Inoryy