0

长话短说,我已经做到了这一点:

$stmt = $mysqli->prepare($sql);
$stmt->bind_param("s",$_GET['slug']);

但我对如何将结果放入关联数组感到完全困惑。我试过

$stmt = $mysqli->prepare($sql);
$result = $stmt->bind_param("s",$_GET['slug']);
while ($row = $result->fetch_assoc()) {
    printf ("%s (%s)\n", $row["website_name"], $row["subheading"]);
}

我认为我不能使用$mysqli->query($query)准备好的语句来代替,因为这似乎会让我对 SQL 注入攻击持开放态度。然而,这就是 PHP 文档中用来做我想做的事情的代码。所以我找不到任何显示如何获取准备好的语句的结果并将其移动到关联数组中的东西。有人知道吗?甚至可能吗?

4

2 回答 2

1

Mysqli 有两种查询方式。

您可以使用准备好的语句,bind_param用于填充占位符、execute()执行查询和bind_result接收结果。

或者您可以使用插入变量的语句,例如 mysql。然后您可以使用fetch_assoc将结果接收到关联数组中。

我认为您不能混合使用这两种方法。您不能绑定参数,然后使用 fetch 函数来接收结果。如果您想要该功能,请改用 PDO。

这很烦人,恕我直言。

于 2013-05-07T18:19:51.990 回答
0

Mysqli 有两种从准备好的语句中获取结果的方法。

于 2013-05-07T18:57:32.893 回答