Im new to databaseと私はMySQLを使用してデータベースにアクセスするたくさんのPHPコードを書いています。通常のmysqlを準備済みの文に変換する
私はSQLインジェクション攻撃を考慮しませんでしたので、mysqlプリペアドステートメントを使用するにはすべてのPHPコードを書き直さなければなりません。
準備されたSQL文を使用する方法のビデオを見た後、ただ1つのSQLコマンドを実行するためには、たくさんの "準備された"文が必要です。私の既存のコードには、いろいろなSQLステートメントがたくさんあります。準備された各ステートメントコマンドのすべての必要な準備をパックして解凍するために、すべてのコードを変更するのは悪夢です。
準備された文の6行または7行に正規SQLの1行を回すのを防ぐために使用できるラッパーがありますか?例えば
は、SQL
SELECT * from users where userid=10
のこの行ラインを行うために使用する他のSQL文がたくさんある場合は特に、あまりにも、それは現在、非常に複雑になり、準備されたSQL文のより多くの行を必要とします。
テンプレートSQL文字列に加え、コマンドを実行し、結果をMYSQLステートメントのさまざまなタイプのラッパーの1行だけで返すパラメータを受け入れることができる、ある種の行ラッパーがありますかコードはずっと混乱しにくく見栄えが悪くなる傾向があります。
$users=WrapAndExecute($db,"SELECT * from users where userid=?","s",$userid);
$data=WrapAndExecute($db,"UPDATE table SET username=?,city=?","ss",$name,$city);
$result=WrapAndExecute($db,"DELETE from table where id=?","s",$userid);
$result=WrapAndExecute($db,"INSERT into ? (name,address) VALUES(?,?)","ss","users",$name,$address);
例えば
上記のこれらの線のそれぞれは、準備された文のテンプレートを作成してバインドを行い、それを実行し、定期的なMYSQL文があろうと、結果を返します。これにより、既存のコードに与える影響は最小限に抑えられます。
誰かがこれを行う方法を知っているか、またはこれを行うための簡単なPHPライブラリまたはクラスが既に存在する場合、私はそれをインポートして使用することができますか?それはそれで何のPHP変数を持っていない場合は、プリペアドステートメントにクエリを変更する必要はありません
おかげ
私は何を求めているのか分かりませんが、疑問のあるところでは、[PDO :: prepare](https://secure.php.net/manual/en/pdo.prepare.php)PHPドキュメントがあります。 – Artemis
申し訳ありませんが、十分な情報を提供しませんでした。元の投稿を更新しました。ご意見ありがとうございます。 – Programmer2
_準備済みのSQL文の数多くの行が必要です。そして、それほど読んでいない/理解している/維持するのは簡単です...私は何らかの良い/優れたコードを持つために少し汗をかくことがない理由**を見ていません^^ – OldPadawan