2014-11-08 55 views
0

中打印我正試圖與mysqli進行交易,但與現在折舊的mysql相比,發現它很困難。到目前爲止,我已經能夠在關聯數組中獲得關於我的表的信息。我試圖形成一個準備好的聲明和echoid號碼回來。我還希望能夠打印已被綁定的整個sql聲明,但由於我甚至無法迴應單個SELECT聲明中的id號碼,因此目前不存在此問題。無法獲取準備好的語句以在php

$db = new mysqli('xxx', 'xx', 'xx', 'xxxx'); 

$sql = "SELECT user_id, name FROM users WHERE name=?" 

$statement = $db -> prepare($sql); 

$statement -> bind_param("s", "Emma"); 

$statement -> execute(); 

$statement -> bind_result($id, $name); 

$output = $statement -> fetch(); 

echo $output -> $id . " " . $name; 

我似乎迷路在線bind_result。我想如果statement是一個對象,那麼我應該可以在我設計的形式中使用echo?當我刷新我的頁面時,我什麼都得不到。我在我的表中有2個條目,其中1個具有上面使用的名稱字符串。

回答

0

你覺得太複雜了。剛剛嘗試這一點:

$db = new mysqli('xxx', 'xx', 'xx', 'xxxx'); 
$sql = "SELECT user_id, name FROM users WHERE name=?"; 
$statement = $db->prepare($sql); 
$statement->bind_param("s", "Emma"); 
$statement->execute(); 
$statement->bind_result($id, $name); 
while ($statement->fetch()) { 
    echo $id . " " . $name; 
} 

bind_result()方法需要照顧你執行你的變量$id$name得到新鮮的價值觀每個$statement->fetch()

你應該看看這些方法的好documentation

+0

謝謝 - 那麼'fetch'究竟返回了什麼?一個布爾?所以'statement-> fetch'應該總是在while循環中?當它們沒有以通常的方式定義時,它的奇怪的視覺變量例如'%id'。 '$ id = $ _GET ['id']'或'$ id = 5'等 – user1574598 2014-11-08 16:09:06

+0

您的評論意味着您沒有查看文檔,因爲那樣會馬上回答您的問題。請問爲什麼? – arkascha 2014-11-08 19:14:33

+0

對不起,我只是在發佈我的評論後纔看到文檔的鏈接。自從讀過它們。 – user1574598 2014-11-08 21:09:50