3

この更新クエリが機能しない理由を誰かに教えてもらえますか?

if ($_GET['update']) {
include 'config.php';
//Connect to MYSQL Database server
$connect = mysql_connect(DB_HOST, DB_USER, DB_PASS) or die("Could not connect to MYSQL Database.");
$result = mysql_select_db(DB_NAME, $connect) or die("Could not connect to MYSQL table.");

mysql_query("UPDATE contact SET read = 1 WHERE id = '$_GET[update]'")or die("Query failed.");
echo "Update works!";
} else {
echo "Update does not work...ughh.";
}

前もって感謝します。

編集:クエリを機能させました。セキュリティを心配している人のために、私はこのスクリプトを使用したいかどうかを確認するためのテストとして使用していました。スクリプトが機能するようになったので、セキュリティを追加しました。ヘルプとヒントをありがとうございました。

4

6 に答える 6

3

$_GET['update'] を使用して文字列に値を追加するには、文字列をエスケープする必要があると思います。しかし、悪意のあるユーザーに攻撃されないようにするには、準備済みステートメントを使用する必要があります。

準備済みステートメント: http://php.net/manual/en/pdo.prepared-statements.php

于 2012-06-06T21:23:55.060 に答える
0
mysql_query("UPDATE contact SET read = 1 WHERE id = '.$_GET[update].'")or die("Query failed.");
echo "Update works!

mysql_queryを使用しないようにしてください。それは古く、効率的ではありません。PDOについて学び、ステートメントを準備してみませんか..?

于 2012-06-06T21:28:20.057 に答える
0

あなたはそうテストすることができます

mysql_query("UPDATE contact SET read = 1 WHERE id = '".(int)$_GET['update']."'")or die("Query failed.");

これが特定の問題ではない場合

于 2012-06-06T21:23:30.133 に答える