我正在创建一个表格,根据表单选择输出国家/地区详细信息列表,但我不断收到此错误: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
}
?>
答案 0 :(得分:1)
在您的第"SELECT * FROM $country WHERE country_id='$country_id'"
行中,未定义变量$country
,因此它将呈现为: "SELECT * FROM WHERE country_id='1'"
,因此SQL错误。
您的意思是$table_name
,其中值 'country'
。
由于这似乎仅仅定义了几行,因此直接在SQL语句中编写它可能更有意义,而不是拥有一个变量,但是您可能稍后会计划该变量... < / p>