さて、私は調査を行いましたが、これを理解できないようです。簡単に言えば、私は次のようなものを使用しています:
ところで、「(WebsiteInfo)」は私のウェブサイト/データベース情報を感知するためのものです。
$SQL = new PDO('mysql:dbname=(WebsiteInfo);host=(WebsiteInfo);charset=utf8', '(WebsiteInfo)', '(WebsiteInfo)');
$SQL -> setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
$SQL -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
さて、それは現在、データベースの接続を開始するだけです。ところで、これはほとんどがこのWebサイトで見つけたコピー/貼り付けコードであり、MySQLインジェクションを防ぐためのものです。実際にはこのリンクからPHPでSQLインジェクションを防ぐにはどうすればよいですか? . 何か問題がある場合は、アドバイスやヒントを気にしません。データベースを使い始めたのはおそらく 1 週間前ではないので、それが理にかなっている限り、すべてが新しいものです。今これがあります:
$Exicu = $SQL -> prepare("SELECT `tags` FROM `users` WHERE `user_id` = :a ") -> execute(array( ':a' => 16));
$Exicu
クエリから結果を取得しようとしていたためです (正しいと言った場合)。また、16 はユーザー ID ですが、これは頻繁に変更されるため、prepare ステートメントで 16 を使用するだけではありません。私は多くのことを試しましたが、どれもうまくいきませんでした。動作しないか、PHP がクラッシュしました。
とにかく、私がすでに試したこと$Exicu
は$Exicu->rowCount()
、 、 、 、 、 、 、、、およびを含むwhile ループ$Exicu->bindParam
です。はい、私は知っています、それはかなりずさんに見えます。$row = $Exicu->fetch()
$SQL->query($Exicu)->fetchAll();
foreach
($Exicu->fetch(PDO::FETCH_ASSOC) as $row)
$Exicu->get_result()
echo PDO::query($Exicu);
echo mysql_result($Exicu)
echo $Exicu
しかし、これらのどれもtags
、特定のユーザーのデータベースから私に表示するだけではうまくいかなかったようです。だから、それは私が助けを必要としているものです。このようなものを使用しても問題echo mysql_result( mysql_query("SELECT (etc,etc)") )
はありませんが、MySQL インジェクションからの保護はありません。