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 にはクエリを実行する 2 つの方法があります。

準備済みステートメントを使用bind_paramして、プレースホルダーを入力execute()し、クエリを実行しbind_result、結果を受け取ることができます。

または、mysql のように変数が補間されたステートメントを使用することもできます。次に、 を使用fetch_assocして結果を連想配列に受け取ることができます。

この 2 つのアプローチを混在させることはできないと思います。パラメータをバインドしてから、フェッチ関数を使用して結果を受け取ることはできません。その機能が必要な場合は、代わりに PDO を使用してください。

それは迷惑です、私見。

于 2013-05-07T18:19:51.990 に答える