mySQL 5.5语法错误

时间:2013-12-22 04:01:04

标签: php mysql syntax

有人可以告诉我下面针对MySQL 5.5的语法有什么问题

$sql = "select tm.*, tt.tax_rate as tax from ".TABLE_MEMBER." tm left join ".TABLE_TAX_RATES." tt on tt.tax_rates_id = tm.rent_tax_class_id where plan_id='".$planid."'";
$rs = tep_db_query($sql);
$row_days = tep_db_fetch_array($rs);
if (!$row_days['tax']) $row_days['tax'] = 0;

2 个答案:

答案 0 :(得分:1)

tt.* AS语法无效,因为您无法为多列添加别名。您必须单独写出每个列(并根据需要对其进行别名),或者只是接受使用*,您应该避免在生产中使用它们。您评论中的查询与您的问题中的查询不同,不会导致此错误。

您还应该使用正确的参数化查询 - 您的查询很容易被注入。

答案 1 :(得分:0)

您错过了在where子句

中提及表别名

sql应该是

$sql = "select tm.*, tt.tax_rate as tax from ".TABLE_MEMBER." tm left join ".TABLE_TAX_RATES." tt on tt.tax_rates_id = tm.rent_tax_class_id where tm.plan_id='".$planid."'";

$sql = "select tm.*, tt.tax_rate as tax from ".TABLE_MEMBER." tm left join ".TABLE_TAX_RATES." tt on tt.tax_rates_id = tm.rent_tax_class_id where tt.plan_id='".$planid."'";