PHP语法错误,意外的$ end

时间:2013-01-08 21:53:25

标签: php

我是PHP的新手,并试图找出我正在使用的代码的问题。这是我的第一个MySQL查询,它似乎在最后一行窒息,抛出“语法错误,意外的$ end”。我尝试使用endwhile代替}但没有解决它所以我很难过。结尾?>标签似乎与起始的php标签匹配,所以不确定缺少什么。这是:

<?php
mysql_connect ("ratetable.db.1018.host.com", "ratetable","notmypassword") or die (mysql_error());
mysql_select_db ("rates");
$term = (int)$_POST['term'];
$sql = mysql_query("select * from 'rates' where 'mileage' <= 'term';
while ($row = mysql_fetch_array($sql)){
    echo '<br/> Mileage radius:'.$row[mileage];
    echo '<br/> Rate per mile:'.$row[ratepermile];
    echo '<br/><br/>';
}
?>

我看到一个帖子,其中有人在php.ini中启用了短标签,我添加了作为预防措施(当时还没有),但没有做任何事情。我正在弄清楚为什么它不喜欢最后一行。

感谢您一看。

3 个答案:

答案 0 :(得分:4)

以下一行:

$sql = mysql_query("select * from 'rates' where 'mileage' <= 'term';

需要更改为:

$sql = mysql_query("select * from 'rates' where 'mileage' <= 'term'");

答案 1 :(得分:1)

查询后不要关闭括号。

$sql = mysql_query("select * from 'rates' where 'mileage' <= 'term'");

答案 2 :(得分:0)

我猜你正在关注一些在线教程,但是你需要注意你使用的教程的日期和声誉。这些函数即将被弃用,以支持mysqli。它的语法几乎相同,但允许您首先准备语句以防止注入攻击。此外,您应该查看PDO,因为它执行相同的操作但允许您使用不同的数据库类型。作为初学者,这种可能性极小,但熟悉它仍然非常重要。

最后,我建议像Sublime Text 2这样的好编辑器为你提供语法和错误突出显示,这样你就不太可能在将来犯这样的错误。

最重要的是,请阅读PHP Manual!。它是PHP开发人员的最大资源,如果你看过它而不是一些旧的教程,你会发现不再推荐使用mysql_ *。