2013-01-08 45 views
0

我是新来的PHP,并试图找出这个代码我使用的是什么问题。这是我的第一个MySQL查询,它在最后一行似乎窒息,抛出“语法错误,意外的$结束”。我试着使用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中,我补充说,作为预防措施(是不是已经在那里),但什么也没做。我在为什么不喜欢最后一行而留下一片空白。

谢谢你看看。

+5

你缺少'“)',即便是这样的代码高亮显示您 – Madbreaks

+0

不使用的mysql_query或类似。使用PDO或mysqli的 – KryDos

+2

[**请不要使用'mysql_ *'功能在新的代码**](http://bit.ly/phpmsql)。他们不再维护[和正式弃用](https://wiki.php.net/rfc/mysql_deprecation)。看到[**红框**](http://j.mp/Te9zIL)?了解[*准备语句*](http://j.mp/T9hLWi),并使用[PDO](http:// php。 net/pdo)或[MySQLi](http://php.net/mysqli) - [这篇文章](http://j.mp/QEx8IB)将帮助你决定哪个。如果你选择PDO,[这里是一个好教程](http://j.mp/PoWehJ) – Kermit

回答

1

您在查询后不关闭括号。

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

刚关闭它。在最后一行仍然有同样的事情。感谢您注意! :)(心理注意:不要代码验血后哈哈!) – Shawn

+0

大声笑-2为此不知何故,即使这是第一个答案。 – ajacian81

+0

是的,在捐献血液后我得到了。放轻松吧! – ajacian81

4

以下行:

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

需要改变到:

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

Upvotes。许多upvotes。 – Kermit

+1

你应该建议OP停止使用'mysql_'函数 – Kermit

+0

是的,但它已经被添加为上面他的问题的评论。 –

0

我猜你遵循一些在线教程,但你必须要小心了您使用的教程的日期和声望。这些功能即将被弃用,以支持mysqli。这几乎是相同的语法,但可以让您先准备好您的语句以防止注入攻击。此外,你应该看看PDO,因为它做同样的事情,但允许你使用不同的数据库类型。作为一个初学者,这是不太可能的,但熟悉它仍然非常重要。

最后,我想提出一个很好的编辑器一样Sublime Text 2,让你的语法和错误高亮,这样你就不太可能做出这样的错误的未来。请致电PHP Manual!。这是PHP开发人员最重要的资源,如果你看过那个,而不是一些老的教程,你会发现mysql_ *不再被推荐。

+0

谢谢克里斯。你是对的。由于我完全是PHP新手,我不知道这个PDO的东西,我发现它有点像Windows开始做数据库连接语句时,我想到了它。 – Shawn