PHP语法错误排查:从MySQL读取数据代码报错求助
嘿,我来帮你搞定这个PHP语法错误的问题!你遇到的意外出现'readphp'(T_STRING)错误,核心原因其实很明显,咱们一步步拆解:
问题根源分析
首先看你贴出来的代码片段,最后一行的echo语句明显没写完:
echo "<b><a href=\"readphp.php?id={$row['employee_id']}\">{$row['emp...";
这里的{$row['emp...是不完整的变量(比如你可能想写employee_name却没写完),而且整个echo语句既没闭合双引号,也没加结束的分号,PHP解析到readphp的时候找不到正确的语法结构,直接触发了T_STRING错误。
另外还有两个必须提醒你的重要问题:
- 你用的
mysql_*系列函数早就被PHP官方废弃了,PHP 7及以上版本直接移除了这些函数,继续用的话在新环境里根本跑不起来,建议换成mysqli_*或者PDO。 - 你的代码存在SQL注入风险,直接把数据库字段拼到URL里,后续优化一定要用参数化查询来避免安全问题。
修复后的完整代码示例
我给你补全了语法,还换成了更安全兼容的mysqli版本,你可以参考:
<?php // 改用mysqli连接数据库(直接包含数据库名,无需单独调用选择库的函数) $connection = mysqli_connect("localhost", "root", "", "company"); // 检查连接是否成功 if (!$connection) { die("数据库连接失败: " . mysqli_connect_error()); } // 执行查询语句 $query = mysqli_query($connection, "SELECT * FROM employee"); // 检查查询是否成功 if (!$query) { die("查询失败: " . mysqli_error($connection)); } // 循环输出查询结果 while ($row = mysqli_fetch_array($query)) { // 补全echo语句,确保变量、引号、分号都正确闭合(这里假设你要输出员工姓名,可根据实际字段修改) echo "<b><a href=\"readphp.php?id={$row['employee_id']}\">{$row['employee_name']}</a></b><br>"; } // 关闭数据库连接 mysqli_close($connection); ?>
关键修复点
- 补全了
echo语句中的变量,闭合了双引号和分号,解决了直接触发语法错误的问题。 - 替换了废弃的
mysql_*函数为mysqli_*,适配新版本PHP。 - 增加了连接和查询的错误检查,方便你排查后续可能出现的问题。
内容的提问来源于stack exchange,提问作者user9740150
相关产品推荐
相关产品推荐

