2013-01-08 46 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