2017-04-19 57 views
0

這是連接到我的數據庫的代碼。我確定用戶名,密碼和數據庫名稱是正確的。MySQL準備的語句在PHP中拋出錯誤

$Myconn = mysqli_connect($this->host, $this->user, $this->pass, $this->DBname); 

這是準備語句代碼:

$query =$Myconn->prepare("SELECT * FROM `AD` WHERE name=?"); 
$query->bind_param('s', $AD_Name); 
$query->execute(); 
$query->store_result(); 
$query->bind_result($id, $name, $price); 

,我相信,我送$AD_Name正確,以及我的查詢。

我使用AMPPS,它使用我的代碼時正在工作。

我的問題是我的結果總是null當我打印$id$name$price

回答

1

$query->bind_result($id, $name, $price); 

使用後

$query->fetch(); 
+0

它的工作原理是由於 –

+0

很高興幫助隊友 –

2

阿里拉希德是正確的,你應該做一個bind_result()後使用fetch(),但這裏有一個比較大的問題。您不能使用bind_result()SELECT * ...。它不會正常工作,因爲bind_result()將不知道選定元素的順序,因此它不知道哪個變量應該得到哪個值。相反,你應該修改爲類似:

$query =$Myconn->prepare("SELECT id, name, price FROM `AD` WHERE name=?"); 
$query->bind_param('s', $AD_Name); 
$query->execute(); 
$query->store_result(); 
$query->bind_result($id, $name, $price); 
$query->fetch(); 

替補必要課程的列名。

您可以看到,這裏一個很好的解釋:https://stackoverflow.com/a/18753263/2694511