PHP报错Call to undefined function updateTable() 原因排查求助
问题原因及解决方案
首先,你遇到的Fatal error: Call to undefined function updateTable()本质是**functions.php文件未被正确解析,导致updateTable()函数没有被定义**,核心问题出在showAlldata()函数的错误处理代码上:
在functions.php的showAlldata()中,你调用mysqli_error()时没有传入数据库连接对象$connection:
if(!$result) { die("Eroare" . mysqli_error()); // 这里缺少必填的$connection参数 }
mysqli_error()必须接收有效的数据库连接资源作为参数,否则PHP会抛出警告;如果你的错误级别设置较高,会直接导致functions.php脚本终止解析,后面的updateTable()函数自然不会被加载。而当你把updateTable()直接粘贴到其他文件时,避开了这个错误点,所以函数能正常被调用。
修复步骤
把mysqli_error()改成mysqli_error($connection),修正后的showAlldata()函数:
function showAlldata() { global $connection; $query = "SELECT * FROM login"; $result = mysqli_query($connection, $query); if(!$result) { die("Eroare" . mysqli_error($connection)); // 传入$connection参数 } while($row=mysqli_fetch_assoc($result)){ $id=$row['id']; echo "<option value='$id'>$id</option>"; } }
额外优化建议
- 避免重复连接数据库:
login_update.php和functions.php都包含了db.php,可以把两处的include "db.php";改成include_once "db.php";,防止重复创建数据库连接 - 开启错误提示排查问题:可以在
login_update.php开头添加以下代码,方便后续快速定位隐藏错误:
error_reporting(E_ALL); ini_set('display_errors', 1);
内容的提问来源于stack exchange,提问作者Adrian98
相关产品推荐
相关产品推荐

