PHP 函数难以部分执行
问题:
负责处理的 PHP 函数服务器请求遇到无法进入特定代码区域的问题。该函数首先建立数据库连接并将数据写入文件。后续查询尝试检索数据,但导致错误“未知表状态:TABLE_TYPE”。
解决方案:
代码重构和数据库抽象:
为了降低代码复杂度并改进错误处理,对原始代码进行了重构。首先,为文件写入创建单独的函数,简化文件操作。
其次,将数据库连接和查询抽象为单独的 MySQL 类。这允许在主函数之外进行更灵活的数据库访问和错误处理。
示例:
文件写入函数:
function file_put($number, $data) { $path = sprintf("C:/temp/wamp/www/file%d.txt", $number); file_put_contents($path, $data); }
数据库类:
class MySql { // Properties for database connection // ... // Database connection method private function connect($server, $name, $password) { // Connect and error handling } // Database query method public function query($query) { // Establish connection if not already done // Execute query and return result } }
修改的Checkin函数:
function checkin(MySql $DB, $TechID, $ClientID, $SiteID) { $query = sprintf( "SELECT `Type` FROM `Log` WHERE `TechID` = '%d' ORDER BY LogTime DESC LIMIT 1", $TechID ); file_put(5, $query); $result1 = $DB->query("SELECT COUNT(*) FROM Log"); $result2 = $DB->query($query); foreach ($result1 as $row1) { list($count) = $row1; $data = "ClientID:$ClientID TechID:$TechID SiteID:$SiteID Count:$count"; file_put(3, $data); foreach ($result2 as $row2) { file_put(4, $data); } } }
通过实现代码重构和数据库抽象,简化了原始函数,错误处理更简单改进,并且恢复了执行所有代码区域的能力。
以上是为什么我的 PHP 函数无法执行特定代码段,导致'未知表状态:TABLE_TYPE”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!