基于表单选择的PHP列表:MDB2错误:语法错误

时间:2013-03-20 22:57:33

标签: php mdb2

我正在创建一个表格,根据表单选择输出国家/地区详细信息列表,但我不断收到此错误: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
    }
?>

1 个答案:

答案 0 :(得分:1)

在您的第"SELECT * FROM $country WHERE country_id='$country_id'"行中,未定义变量$country,因此它将呈现为: "SELECT * FROM WHERE country_id='1'",因此SQL错误。

您的意思是$table_name,其中 'country'

由于这似乎仅仅定义了几行,因此直接在SQL语句中编写它可能更有意义,而不是拥有一个变量,但是您可能稍后会计划该变量... < / p>