同様信託私は、任意のコストで回避する必要があることすぎ大変な仕事ではありませんすべての3つのクエリを記述します。
貴重なSQL言語をわかりにくく解釈しないようにしてください。あなたのアプローチの無数のセキュリティ侵害を言うまでもなく。
あなたが考えるべきであることは、パラメータを使用できるようにする機能です。したがって、よりよいこの
function mysqli($mysqli, $query, $params, $types = NULL)
{
$statement = $mysqli->prepare($select);
$types = $types ?: str_repeat('s', count($params));
$statement->bind_param($types, ...$params);
$statement->execute();
return $statement;
}
のように私達の機能を作成しているとして、あなたのすべてのクエリを実行し、唯一の代わりに変数
select * from table
のプレースホルダを提供する:
あなたはこの ようなクエリを必要とすることは決してないだろう
select name from table
$names = mysqli($db, "select name from table")->get_result->fetch_all();
`名を選択し、テーブルから給与:
$stmt = mysqli($db, "select name from table where salary > ?", [10000]);
$names = $stmt->get_result->fetch_all();
う - クエリ自体は、少なくともコード部分です。あなたの懸念事項は、SQLではなく、クエリを実行してデータを取得するために使用されるPHPコードの無駄な部分でなければなりません。
コードはSQLインジェクションを受けやすいです。 –
認められています。 OPの要件を満たすために、私は可能な限り一般的なものにしました。より具体的なケースでは、準備されたステートメントとバインドされた変数を使用する関数を記述することができます。 –