2010-05-03 55 views
1

我正在學習如何使用php 5 mysqli對象準備好的語句,並且無法使基本結果綁定工作。我正在關注來自php.net的示例代碼,但某些內容不起作用,綁定結果始終爲空。以下是我有mysqli bind_result/fetch問題

/*準備聲明*/

if ($stmt = $DB->mysqli->prepare("SELECT `alias`,`nameFirst`,`nameLast`,`email`,`access_level` FROM `users` WHERE `alias` LIKE CONCAT('%',?,'%') LIMIT 20;")) { 

        $stmt->bind_param('s',$alias); 

        $stmt->execute(); 

        /* bind variables to prepared statement */ 
        $stmt->bind_result($col1, $col2); 

        /* fetch values */ 
        while ($stmt->fetch()) { 
        echo "COL 1=".$col1." | COL2=".$col2."<br />"; 
        } 

        /* close statement */ 
        $stmt->close(); 
       } else echo "NO DICE"; 
+0

我和OP有同樣的問題,但是我的原因是我的'SELECT a,b,c,d,e f,g'語句中缺少一個**逗號**。 – 2017-02-09 15:09:49

回答

3

哎呀,我錯過了正確的PHP文檔注:

注意,所有列必須mysqli_stmt_execute() 後綁定並在致電mysqli_stmt_fetch()之前。

找到答案在這裏:

Prepared Statement not returning anything

-3

或者,你可以在樣$cols[]陣列中的所有領域。在打印時,您可以使用echo $cols[0].$cols[1]等。

+0

這不起作用。 – Raffael 2013-04-27 09:59:14