使用预先准备的语句选择MySqli OO

时间:2017-01-09 15:35:39

标签: php mysqli prepared-statement

如何使用预准备语句使用MySqli OO运行 SELECT 语句?

我正在尝试学习,我可以执行 INSERT DELETE UPDATE 语句,但我遇到了的问题SELECT 。我一直在搜索,但我仍然不理解带有预处理语句的 SELECT (阅读PHP man page for prepared statements)。

没有准备好的陈述,它运作良好:

$sql = "SELECT title FROM test
        WHERE id = 2";
    $result = $conn->query($sql);

    while($row = $result->fetch_assoc()) {
        echo $row["title"] . "<br>";
    }

    $conn->close();

准备好的陈述:

我尝试的东西不起作用 我认为在这种情况下显示数据时遇到问题。有人可以解释一下吗?

$stmt = $conn->prepare("SELECT title 
                        FROM test 
                        WHERE id = ?");

$stmt->bind_param("i", $id);
$id = 18;
$stmt->execute();
$stmt->bind_result($title);

while($stmt->fetch()) {
    echo $row["title"] . "<br>";
}

$stmt->close();
$conn->close();

1 个答案:

答案 0 :(得分:2)

这让我想知道你为什么不能成功to the end of example并开始设计你自己的语法。您认为bind_result($title)是为了什么?你从哪里得到$row

$stmt = $conn->prepare("SELECT title FROM test WHERE id = ?");
$stmt->bind_param("i", $id);
$id = 18;
$stmt->execute();
$stmt->bind_result($title);

while($stmt->fetch()) {
    echo $title . "<br>";
}
相关问题