0

我是 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 中启用了短标签,我添加了它作为预防措施(当时还没有),但没有做任何事情。我对为什么它不喜欢最后一行一无所知。

谢谢你看。

4

3 回答 3

4

以下行:

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

需要改为:

$sql = mysql_query("select * from 'rates' where 'mileage' <= 'term'");
于 2013-01-08T21:54:43.717 回答
1

查询后不要关闭括号。

$sql = mysql_query("select * from 'rates' where 'mileage' <= 'term'");
于 2013-01-08T21:54:10.813 回答
0

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

最后,我建议使用像Sublime Text 2这样的优秀编辑器,它可以为您提供语法和错误突出显示,这样您以后就不太可能犯这样的错误。

最重要的是,请阅读PHP 手册!. 对于 PHP 开发人员来说,它是唯一最好的资源,如果您查看过它而不是一些旧教程,您会发现不再推荐使用 mysql_*。

于 2013-01-08T22:03:35.037 回答