2017-04-12 35 views
0

我想學習如何在我的PHP中使用準備好的語句,從MySQL數據庫中獲取數據。目前我沒有得到任何打印出來的東西。綁定參數MySQl和PHP

我需要有一個while循環經歷我的數據庫中的行。那是對的嗎?

我在這裏正確的方式,或我錯過了什麼?我在代碼中做了一些評論,描述我在做什麼。

<?php 

    $stmt = $mysqli->prepare("SELECT * FROM fantasies WHERE headline = ? AND description = ? AND place = ? ORDER BY reg_date DESC LIMIT 3"); 

       // Execute prepared statement 
       if ($stmt->execute()) { 
        $success = true; 
       } 

       // Make variables ready 
       $head = null; 
       $desc = null; 
       $plac = null; 

       // Bind result to variables 
       $stmt->bind_result($head, $desc, $plac); 

       while ($stmt->fetch()) { 

        // What should go here? 
        echo "Headline: ".$head."Description: ".$desc."Place: ".$place; 
       } 
       // Close statement 
       $stmt->close(); 

       // Close connection 
       $mysqli->close(); 

if($success) { 
    echo "Selected Succesfull"; 
} else { 
    echo "Failed: " . $stmt->error; 
    } 
} 
?> 
+0

使用[NUM_ROWS](http://php.net/ manual/enq/mysqli-result.num-rows.php)檢查查詢返回結果是否爲 – Saty

+0

您執行兩次 –

+0

感謝您的意見。我更新了我的問題 – KrMa

回答

0

在執行時它應該給你一個錯誤,代碼:

非法參數編號:如您使用的是沒有參數的約束

你需要綁定你的參數佔位符

$stmt->bind_param("sss", $headline, $description, $place); //missing from your code 

其中「SSS」是具體的數據類型在這種情況下,一個字符串和$headline, $description, $place是你的變量,你用佔位符代替

你的代碼應該是

<?php 

$stmt = $mysqli->prepare("SELECT * FROM fantasies WHERE headline = ? AND description = ? AND place = ? ORDER BY reg_date DESC LIMIT 3"); 

//bind parameters 
$stmt->bind_param("sss", $headline, $description, $place); 

if ($stmt->execute()) { 
    $stmt->bind_result($head, $desc, $plac); 

    while ($stmt->fetch()) { 

     echo "Headline: " . $head . "desc: " . $desc . "Place: " . $plac; 
    } 
    $stmt->close(); 
} else { 

    echo "error" . $mysqli->error; 
} 

$mysqli->close(); 

?> 
+0

謝謝你的答案。我可以看到你的意思。我只是試着用你的代碼。我仍然沒有得到任何印刷品。它可以是我的SELECT語句嗎? – KrMa

+0

是否有這些變量'$標題,$ description,$ place'? –

+0

是的,我複製了你的代碼並嘗試了,但它仍然沒有給我任何輸出。我的數據庫中的列名是:'head,description,place'。其實我甚至沒有收到「錯誤」信息。所以它看起來沒有什麼叫。 – KrMa