0

10回実行されるforループで使用しているコードは次のとおりです。

$query = "UPDATE fblikes SET likes = '$var[$i]' WHERE link = '$web[$i]'";

if(mysql_query($query))
{
    echo $query;
}                         
else
{
    echo mysql_error();
}

コードが実行され、 ok!10 回印刷されますが、テーブルには何も起こりません。$varまた、2 つの配列、つまりともチェックしました$web。これらには正しい値が含まれています。

クエリは私には問題ないようです。これが私が得たものです(10個の出力の1つ):UPDATE fblikes SET likes = '5' WHERE link = 'xxxxxxx.com/xxxx/iet.php';

4

1 に答える 1

2

何が問題なのか正確にはわかり$queryません. mysql_affected_rows()さらに、への呼び出し後にの値を教えてくださいmysql_query()

ただし、コードはいくつかの間違ったパターンを実装しています。

まず第一に、あなたは逃げていません$var[$i]$web[$i]、2 つの潜在的な影響があります:

  • 間違ったクエリを作成することができます
  • データベースへの入力をサニタイズしないため、アプリケーションがセキュリティの問題にさらされます

さらに、提供された入力のみが異なるいくつかの同様のクエリを実行します。

両方の問題の解決策は、より多くの制御、セキュリティ、およびパフォーマンスを提供する準備済みステートメントを使用することです。関数を放棄してまたはにmysql_*切り替えることを検討し、準備済みステートメントについて読んでください。mysqli_*PDO

于 2013-02-17T10:06:49.967 に答える