PDO::ERRMODE_EXCEPTION, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, PDO::ATTR_EMULATE_PREPARES => false, ]); return self::$pdo; } /** 表是否存在(安装判定用,不依赖异常) */ public static function hasTables(): bool { try { $st = self::get()->prepare( 'SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = DATABASE() AND table_name IN (\'families\',\'persons\',\'accounts\',\'settings\')' ); $st->execute(); return (int)$st->fetchColumn() === 4; } catch (\Throwable $e) { return false; } } }