0

だから、私は一日中このコードと戦ってきました。私はたくさんのことを試しましたが、役に立ちませんでした。だから答えを求めてここに来る。

編集:コメントに記載されている問題のいくつかを修正しました。それでも、問題は解決しません。エラーは次のとおりです。

You have an error in your SQL syntax; check the manual that corresponds
to your MySQL server version for the right syntax to use near
'values where `item_id` = 'Throne' ORDER BY `timestamp` DESC LIMIT 10'
at line 1

これは私のPHPコードです:

    include("config.php");
    include("functions.php");
                if(isset($_GET['name'])){
                    $id = mysql_real_escape_string($_GET['name']);


                        $get_rares = mysql_query("SELECT * FROM rares WHERE `name` = '".$id."'") or die(mysql_error());
    $rare = mysql_fetch_array($get_rares);
                    if(mysql_num_rows($check) == 0){
                        echo 'The rare '.$id.' doesn\'t exist!<br>';





                    }else{
                        $r = mysql_fetch_array($check);
                        $ids = $r["id"];
                        $name = $r["name"];
                        $value = $r["value"];
                        $lastedited = $r["lastedited"];
                        $catid = $r["catid"];
                        $desc = $r["desc"];
                        $image = $r["image"];
                        $big_image = $r["big_image"];
                        $release_value = $r["release_value"];
                        $releasedate = $r["releasedate"];                       
                    }
                }else{
                    echo 'No rare has been selected to view.<br><br>Click <a href="members.php">here</a> to go to the rare list.';
                }
                ?>          
                <?php $values = mysql_query("SELECT * FROM values where `item_id` = '".$id."' ORDER BY timestamp DESC LIMIT 10") or die(mysql_error());
4

5 に答える 5

0

"where" の 1 つを省略します。

 "SELECT * FROM rares where WHERE name = ".$id.""
 //                   ***********

と:

列、テーブル、ビュー、または任意のクエリで、mysql に適切に解釈させるための予防措置を講じていない任意の名前として使用できない単語が多数あります。ここを参照してください。

valuesそしてnameそのうちの2人です。

于 2013-06-30T15:11:08.197 に答える
0

nameは文字列であり、引用する必要があります。

$get_rares = mysql_query("SELECT * FROM rares WHERE name = '$id'") or die(mysql_error());

$values = mysql_query("SELECT * FROM values WHERE item_id = '$id' ORDER BY timestamp DESC LIMIT 10") or die(mysql_error());

WHERE@Axelが指摘しているように、2回も書かれました。

于 2013-06-30T15:11:27.777 に答える
0

MySQL では、VALUESis はキーワードです。is をフィールド名またはテーブル名として使用することはできません。

SELECT * FROM values where `item_id` = '".$id."' ORDER BY timestamp DESC LIMIT 10

する必要があります

SELECT * FROM `values` where `item_id` = '".$id."' ORDER BY `timestamp` DESC LIMIT 10
于 2013-06-30T15:21:34.927 に答える
0

VALUESは MySQL のキーワードであり、名前として使用する場合はバッククォートで入力する必要があります:

SELECT * FROM `values` WHERE `item_id` = '$id' ORDER BY timestamp DESC LIMIT 10
于 2013-06-30T15:22:29.227 に答える
0

VALUESそのようなバッククォートで囲む必要があるmysql予約キーワードです

     SELECT * FROM `values` where

mysql 予約キーワード

于 2013-06-30T15:54:13.123 に答える