URLを解析し、番号をIDとして使用して特定のエントリを引き出しています
したがって、次のようなステートメントを使用します。
$blog_id = 5;
$query = "SELECT id,entry,date,views,comments,likes FROM blogs WHERE id=$blog_id ORDER by Id DESC";
それは安全ですか、それとも .... id=?... を使用して bind_param を使用する必要がありますか?
URLからいくつかの値を挿入すると、操作してデータベースを破壊できるため、SQLには準備済みステートメントを使用する必要があります
実際: このコードは安全です。なんで?ユーザー入力は必要ありません。したがって、変更するものは何もありません。
これは意味がありませんが、ここで SQL インジェクションを実行する方法はありません。POST、GET、または Cookie を使用したら、受信情報を検証する必要があります。PDO::bind_param、filter_var()またはを使用してこれを行うことができますhtmlspecialchars()
あなたのコードは、URL から値を取得していないことを示していますが、値 5 を次のように変数にハードコーディングしています。
$blog_id = 5;
代わりにこのようなものがある場合
$blog_id = $_GET['blogid'];
コードは安全ではなく、MySQL インジェクションに対してオープンです。その場合、 ? を含むことができる準備済みステートメントを使用する必要があります。そしてbindParam。これを行うには、mysqli または PDO を使用できます。私はPDOの方が好きです。
これは、SQL インジェクションに対して脆弱なようです。$id には、ID に有効な文字のみが含まれていること、およびセミコロンや SQL キーワードがないことを確認する必要があります。