2011-06-29 50 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