回调到文本框 - 接收意外的T_ENCAPSED_AND_WHITESPACE,期待T_STRING或T_VARIABLE或T_NUM_STRING

时间:2013-01-16 15:25:32

标签: php

  

可能重复:
  Reference - What does this error mean in PHP?

美好的一天,

我有一个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']'>";
   }
}         

?>

但是,我想要从数据库中的行回显一个字段(ratepermile)的回到“回答”的行上出现“解析错误:语法错误,意外T_ENCAPSED_AND_WHITESPACE,期待T_STRING或T_VARIABLE或T_NUM_STRING” ' 文本框。我做了一些检查,发现这个错误意味着我错过了一些关闭括号或类似的东西,但我没有看到它在窒息。

有人可以告诉我是什么造成了这个问题吗?

感谢您一看。

2 个答案:

答案 0 :(得分:2)

您的报价不匹配

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

在这里

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

你也没有捕获条款。

答案 1 :(得分:0)

替换它:

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

使用您的foreach代码并输入

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

{ }

希望这会对你有帮助!