php - 在我的第一个 php 中找不到语法错误
问题描述
我正在尝试将 php 添加到表单以从数据库中填充它,以完成家庭作业。我收到一个解析错误“解析错误:语法错误,第 97 行 /l7p1.php 中的文件意外结束”。在盯着这个文件几个小时后,我似乎找不到我的错误。
在将它们全部更改为单引号之后,我最初在任何时候都使用双引号得到“意外(T_VARIABLE)”(希望有一些我不明白的地方,因为我不确定这会如何改变事情)并且将错误移至代码的最后一行和“文件意外结束”。
这是 php 的第一部分,旨在用数据库中的项目(工具)填充表单
<?php
$db=mysli_connect(null,null,null,'weblab')
or die("Can't connect to db:".mysqli_connect_error($db));
$q = "select tool_item_no, tool_name, tool_price, tool_weight";
$q .= "from tool_t";
$q .= "order by tool_name";
$dbResult = mysqli_query($db,$q)
or die("Database query error" . mysqli_error($db));
$num = mysqli_num_rows($dbResult);
if ($num == 0){
echo"<h3>No Data</h3>";
}
while ($row = mysqli_fetch_assoc($dbResult)) {
$tool_item_no = $row["tool_item_no"];
$tmool_name = $row['tool_name'];
$tool_price = $row['tool_price'];
$tool_weight = $row['tool_weight'];
echo "<label for = '$tool_name'>Name : $toolname<br/>Price : $tool_price<br/>Weight : $tool_weight<br/>How many
$tool_name for this order?
<input type = 'text' name = '$tool_name' id = '$tool_item_no' size = ]'5'/></label><br/><br/>
}
?>
这是我的代码中的第二个 php 位,旨在用数据库中的状态列表填充下拉列表
<?php
$db=mysli_connect(null,null,null,'weblab')
or die('Can't connect to
db:'.mysqli_connect_error($db));
$q = 'select state_abbr, state_name ';
$q .= 'from state_t ';
$q .= 'order by state_name;';
$dbResult = mysqli_query($db,$q)
or die('Database query error' .
mysqli_error($db));
$num = mysqli_num_rows($dbResult);
if ($num == 0){
echo '<option value=
'$state_abbr' >$state_name</option>';
echo '<option>Error</option>';
}
while ($row = mysqli_fetch_assoc($dbResult)) {
$state_abbr = $row[state_abbr];
$state_name = $row[state_name];
echo '<option value= '$state_abbr'>
$state_name</option>';
}
?>
解决方案
PHP 中单引号和双引号之间的区别在于,双引号内的字符串可以被解释,但单引号内的字符串不能被解释(参见此处)。
在 PHP 中,当您遇到意外的 EOF 错误时,很长一段时间,因为您忘记关闭括号、括号、引号......
在您发布的第一段代码中,语法高亮显示您在最后一行忘记关闭 echo 语句中的双引号。
也许单引号的问题之一是由于字符串中的单引号。如果用单引号括起来的字符串中有单引号,PHP 解释器会认为您正在关闭字符串。
推荐阅读
- wpf - 当应用程序不在焦点时更改键盘语言
- python - 为什么程序不循环?
- find - 在 find 命令中查找不支持 printf 的 AIX 系统上的前 N 个最旧文件
- reactjs - 在 React & Emotion JS 中将样式传递给孩子的首选方式是什么?
- c# - 在列表中添加一个数字
大批 - batch-file - 是否可以执行一个文件,然后等到文件更改后再在 MS Batch 中再次执行?
- html - 检查元素 HTML 设置根文件路径
- json - 如何在 Azure ARM 中创建非托管 vhd
- javascript - 我如何摆脱数千行
- c# - 在 XAML C# 中将项目添加到列表中