私はデータベースから値を取得するために以下の方法を使用しています( "$ column"カラムから)、意図したとおりに動作していますが、 SELECTステートメントで追加される "$ column"変数。注射からできるだけ安全になるようにする(?タイプのプレースホルダーで準備するか、適切にエスケープする)。最も現代的で安全なアプローチは何でしょうか? 注:$qry->bind_param("ss",$column,$rowName);
と2?プレースホルダは機能しません。カラム名にSELECT文の変数を使用する
$column = $_POST['column'];
$rowName = $_POST['rowName'];
$qry = $connection->prepare("SELECT $column FROM database_name WHERE row_name=?");
$qry->bind_param("s",$rowName);
$qry->execute();
$result = $qry->get_result();
あなたは、テーブル名とカラム名を用意することはできませんが、あなたは、列のホワイトリストと照合し、変数を使用することができます。 –
この質問はなぜ再開されましたか?誰がそれを再開したのですか? –
"who"のために、私はちょうど誰が見つかった:[YCS](http://stackoverflow.com/users/285587/your-common-sense)=> http://stackoverflow.com/posts/42986569/revisions - 彼はOPが投稿した* "注:$ qry-> bind_param(" ss "、$ column、$ rowName)に基づいて、2人のプレースホルダーが機能しない理由を持っていませんでした" * –