0

この特定の php スクリプトの実行中にエラーが発生しましたが、何が問題なのかわかりません。

エラー コード: SQL 構文にエラーがあります。1 行目の「key='value」付近で使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。

PHP コード:

<?php 
include("includes/onbowlconnect.php");

$key = $_GET['key'];

$query = mysql_query("SELECT * FROM bowlvalidkeys WHERE key='$key'") or die (mysql_error());

$result = mysql_num_rows($query);

if($result == 1)
{
    echo 'GameIDkey was succesfully validated !';
}
else
{   
    echo 'GameIDkey is not valid , please try again';
}
?>

誰でもここで私を助けることができますか?

ありがとう!

4

4 に答える 4

9

key予約済みのmysql キーワードです

キー this の前後にバッククォートを使用する

 SELECT * FROM bowlvalidkeys WHERE `key` ='$key'
于 2013-03-29T22:01:31.633 に答える
0

"key" は MySQL の予約語であるため、エラーが発生します。列の名前を変更するか、クエリ 'key' = '$key' でスケープする必要があります。

また、必ず $_GET 変数をサニタイズしてください。そうしないと、SQL インジェクション攻撃に対して脆弱になります。

于 2013-03-29T22:06:46.407 に答える
0

キーは mysql の予約語です

これを使って

$key = mysql_real_escape_string($key);
$query = mysql_query("SELECT * FROM bowlvalidkeys WHERE `key`='$key'") or die (mysql_error());
于 2013-03-29T22:01:29.223 に答える
0

試す:

mysql_query("SELECT * FROM bowlvalidkeys WHERE 'key'='$key'")
于 2013-03-29T22:01:36.480 に答える