2

PHP の MySQLi 機能は優れています。

プリペアド ステートメントは、クエリにパラメーターを挿入するのに最適です。

ただし、ステートメントを使用すると、fetch_assoc 機能にアクセスできなくなったようです。すべての結果を手動でバインドする必要があります。これは、SQL クエリですべてのフィールドを一覧表示する必要があることを意味します。次に、結果を取得するときに (bind_result を使用して) 事前にすべての変数を一覧表示する必要があります。これは非常に煩わしく、時間を浪費する可能性があります。

代替手段はありますか?

ありがとう

4

2 に答える 2

4

はい、 PDOと呼ばれ、一般的に MySQLi よりも好まれます。通常のフェッチ オプションを使用してステートメントを提供し、すべてのパラメーターを明示的にバインドする必要はありません。典型的なクエリは次のようになります。

$stmt = $db->prepare("SELECT * FROM foo WHERE a = ?");
$stmt->execute(array($a));

$result = $stmt->fetchAll(PDO::FETCH_ASSOC);

PDO は非常に柔軟であるため、他の方法でも使用できます。マニュアルには素晴らしい例がたくさんあります。見てください!

于 2009-07-02T21:45:11.520 に答える
1

MySQLi はこれに対処するためのメソッドを提供しています。result_metadata 関数を見てください。

私は手間のかからないパラメータ化された MySQLi クエリを可能にするクラスを作成しました

于 2009-07-18T12:32:36.147 に答える