2013-11-21 74 views
-1

我知道有很多類似的問題,但我不明白它是如何工作的。 我的問題是,我已經開始我的第一個項目(也是我的第一編碼冒險)與PHP使用MySQL沒有準備好的語句,使用MySQL非準備好的聲明一切都沒事我的問題出來時,我聲明從頭編寫項目準備聲明。 我已經閱讀了很多教程手冊,但我不是英語非常好,我不能怎麼樣已瞭解,使這個:打印出來的行取自查詢

$stmt = $mysqli->prepare("SELECT (filename,ext) FROM userpic WHERE username= ?"); 
$stmt->bind_param('s', $username); 

有數百行,我必須創建一個cicle即取出文件名和ext 並打印出我的圖像的路徑,但它如何工作取出文件名和外部數組,併爲每一行創建cicle。

我無法理解它是如何工作在非準備語句我用這個例子:

$sql = mysql_query("SELECT filename FROM users WHERE username = '$_SESSION[username]' ")or die(mysql_error()); 
while($row = mysql_fetch_array($sql)) 
{ 
echo "<img id=\"membimagestyle\" src=\"uploads/$row[filename]\"></div>"; 
} 

我無法理解如何在事先準備好的聲明版本使用mysql_fetch_array,$行[文件名]。

感謝大家幫助我! & 對不起,我的編碼技巧不好,對不起我的英文不好。

+0

代替MySQL的)? – vzeke

+0

第二段代碼是舊的源代碼,我現在在使用mysql,現在我的問題是我不知道如何創建cicle來打印mysqli上每行的數組。 – user2996667

回答

-1

我希望這個例子可以幫助你解決你的問題

$query = "SELECT filename FROM users WHERE username = ?"; 


if($stmt = $mysqli->prepare($query)){ 
    // bind parameter 
    $stmt->bind_param('s', $username); 

    // execute 
    $stmt->execute(); 

    // bind result to a variable 
    $stmt->bind_result($filename); 

    // iterate through the results 
    while ($stmt->fetch()) {   
     echo "<img id=\"membimagestyle\" src=\"uploads/$filename\"></div>"; 
    }  

    // close the statement 
    $stmt->close(); 
} 

編輯: 如果你想獲取多個列執行以下操作:你爲什麼不使用的mysqli(

$stmt->bind_result($filename, $extension); 

while ($stmt->fetch()) { 
    echo "<img id=\"membimagestyle\" src=\"uploads/$filename.$extension\"></div>"; 
} 
+0

感謝這就是我需要一個明確的例子,現在只有一個問題的意見很明顯。 只有一個問題,如果查詢選擇2或3字段如何綁定到結果? 示例查詢 SELECT文件名擴展名FROM用戶WHERE用戶名=? 如何綁定到一個可用的變量名稱和擴展名? 非常感謝 – user2996667

+0

檢查我的編輯爲這個問題的答案。爲什麼downvote? – stefan

+0

我真的不知道爲什麼投票我沒有信譽積分給你一個積極的反饋,我沒有給你負面的投票你的回答對我的情況是完美的,我真的很感謝你Stefan E的幫助 – user2996667