2013-01-08 21:53

PHP语法错误,意外$ end [关闭]


I am new to PHP and have tried to figure out what the problem is with this code I am using. It's my first MySQL query and it appears to be choking on the last line, throwing "syntax error, unexpected $end". I tried using endwhile instead of } that didn't solve it so I'm stumped. The ending ?> tag does seem to match the starting php tag so not sure what is missing. Here it is:

mysql_connect ("", "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/>';

I saw one post where someone enabled short tags to on in php.ini and I added that as a precaution (wasn't already there) but didn't do anything. I'm drawing a blank about why it's not liking the last line.

Thank you for having a look.

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答


  • dounuo7954 dounuo7954 8年前

    You don't close the bracket after your query.

    $sql = mysql_query("select * from 'rates' where 'mileage' <= 'term'");
    点赞 评论 复制链接分享
  • dongqian6234 dongqian6234 8年前

    I'm guessing you're following some online tutorials, but you need to be careful about the date and reputation of the tutorials you use. Those functions are about to be deprecated in favor of mysqli. It's almost the same syntax, but allows you to prepare your statements first to protect against injection attacks. Also, you should take a look at PDO, since it does the same thing but allows you to use different database types. As a beginner, that's extremely unlikely, but it's still very important to be familiar with.

    Finally, I would suggest a good editor like Sublime Text 2 that gives you syntax and error highlighting, so you're less likely to make a mistake like this in the future.

    Above all, please, read the PHP Manual!. It's the single greatest resource for a PHP developer, and if you had looked at that instead of some old tutorial, you would have discovered that mysql_* is no longer recommended.

    点赞 评论 复制链接分享
  • dongnunai3125 dongnunai3125 8年前

    The following line:

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

    needs to change to:

    $sql = mysql_query("select * from 'rates' where 'mileage' <= 'term'");
    点赞 评论 复制链接分享