首页 > 解决方案 > 在我的第一个 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>';
                                        }
                                ?>

标签: phphtml

解决方案


PHP 中单引号和双引号之间的区别在于,双引号内的字符串可以被解释,但单引号内的字符串不能被解释(参见此处)。

在 PHP 中,当您遇到意外的 EOF 错误时,很长一段时间,因为您忘记关闭括号、括号、引号......

在您发布的第一段代码中,语法高亮显示您在最后一行忘记关闭 echo 语句中的双引号。

也许单引号的问题之一是由于字符串中的单引号。如果用单引号括起来的字符串中有单引号,PHP 解释器会认为您正在关闭字符串。


推荐阅读