1

可能重复:
参考 - 这个错误在 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” . 我做了一些检查,发现这个错误意味着我缺少一些右括号或类似的东西,但我没有看到它正在窒息。

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

谢谢你看。

4

2 回答 2

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 子句。

于 2013-01-16T15:27:41.927 回答
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);
}

尝试后{ }

希望对你有帮助!

于 2013-01-16T15:36:12.890 回答