0

フォームの選択に基づいて国の詳細のリストを出力するテーブルを作成していますが、このエラーが引き続き発生します: MDB2 Error: syntax error. この種のエラーを修正するにはどうすればよいですか?

これが私のコードです:

<?php
    $db =& MDB2::connect($dsn); 
    if(PEAR::isError($db)){ 
        die($db->getMessage());
    }
    $table_name="country";
    $db->setFetchMode(MDB2_FETCHMODE_ASSOC);

    $country_id = mysql_real_escape_string($_GET["country_id"]);

    // collect values from a form sent with method=get
    $gdp = mysql_real_escape_string($_GET["gdp"]);
    $population = mysql_real_escape_string($_GET["population"]);
    $country_name = mysql_real_escape_string($_GET["country_name"]);
    $gold = mysql_real_escape_string($_GET["gold"]);
    $bronze = mysql_real_escape_string($_GET["bronze"]);
    $silver = mysql_real_escape_string($_GET["silver"]);
    $total = mysql_real_escape_string($_GET["total"]);

    $sql = "SELECT * FROM $country WHERE country_id='$country_id'";

    $res =& $db->query($sql);      //MDB2 Error: syntax error

    if (PEAR::isError($res)) {
        die($res->getMessage());    //error printed here
    }
?>
4

1 に答える 1

1

あなたの行"SELECT * FROM $country WHERE country_id='$country_id'"では、変数$countryが定義されていないため、例えばとしてレンダリングされ"SELECT * FROM WHERE country_id='1'"、SQLエラーが発生します。

あなたが意味しているように見えます$table_nameが、 'country'は です。

それはほんの数行で定義されているように見えるので、変数を使用するよりも、SQL ステートメントに直接記述する方がおそらく理にかなっていますが、後でその変数の計画があるかもしれません...

于 2013-03-20T23:46:24.700 に答える