2013-01-16 78 views
1

Possible Duplicate:
Reference - What does this error mean in PHP?回顯到文本框 - 收到意外T_ENCAPSED_AND_WHITESPACE,期待T_STRING或T_VARIABLE或T_NUM_STRING

美好的一天,

我有了一個輸入框HTML表單,提交按鈕和一個結果框。提交時,輸入被髮送到查詢完成的php文件,我試圖從數據庫回顯一個字段回到結果框,我在表單中調用了「答案」。

這裏是我的PHP文件:

<?php 
$hostname = 'myhost.com'; 
$username = 'ratetable'; 
$password = 'mypassword'; 
$term = (int) $_GET['term']; 

try { 
    $dbh = new PDO("mysql:host=$hostname;dbname=ratetable", $username, $password); 
    echo 'Connected to database<br />'; 

    foreach($db->query('SELECT * FROM rates WHERE mileage<=$term' DESC LIMIT 1) as $row) { 
     echo "<input type='text' name='answer' value='$row['ratepermile']'>"; 
    } 
}   

?> 

但是,我得到「解析錯誤:語法錯誤,意想不到的T_ENCAPSED_AND_WHITESPACE,期待T_STRING或T_VARIABLE或T_NUM_STRING」就行了,我想呼應場(ratepermile)從數據庫中的行返回到'答案'文本框。我做了一些檢查,發現這個錯誤意味着我錯過了一些右括號或類似的東西,但我沒有看到它的窒息。

有人可以告訴我什麼是造成問題?

謝謝你看看。

+0

特別是這個答案:http://stackoverflow.com/questions/12769982/reference-what-does-this-error-mean-in-php/13935532#13935532 –

回答

2

你有不匹配的報價

foreach($db->query('SELECT * FROM rates WHERE mileage<= ' . $term . ' DESC LIMIT 1') as $row) { 

這裏

echo "<input type='text' name='answer' value='" . $row['ratepermile'] . "'>"; 

您還沒有catch子句。與你的foreach代碼

foreach($db->query("SELECT * FROM rates WHERE mileage<='".$term."' DESC LIMIT 1") as $row) { 
    echo "<input type='text' name='answer' value='".$row['ratepermile']."'>"; 
} 

並把

catch (PDOException $e) { 
    echo $e->getMessage(); 
    throw($e); 
} 

嘗試後{}

希望這將幫助你:

+0

嗨邁克,我現在越來越「致命的錯誤:調用一個非對象的成員函數query(),現在的內容如下:foreach($ db-> query('SELECT * FROM rates WHERE mileage <='。$ term。'ORDER BY里程DESC LIMIT 1 ')as $ row){ - 但我不明白非對象是什麼。 – Shawn

+0

@Shawn在你發佈的代碼中沒有這個地方,我不打算爲你調試所有的東西。人們已經爲您提供了理解錯誤以及如何解決錯誤所需的工具。現在取決於你。 –

相關問題