修正 Debian adminer 套件的錯誤
Debian 的套件都比較舊,adminer 官網新版的 5.2.1 沒問題,但 Debian 的套件 adminer 4.8.1 版有個小 bug:
以下修正其中 script.inc.php 的錯誤:
〔PHP Warning: Undefined variable $sql in /usr/share/adminer/adminer/script.inc.php on line 15〕
--- script.inc.php.bk 2025-04-13 19:56:46.436160602 +0800
+++ script.inc.php 2025-04-13 20:01:40.604095245 +0800
@@ -1,4 +1,31 @@
<?php
+// 檢查是否已包含必要的檔案
+if (!function_exists('connect')) {
+ require_once __DIR__ . "/include/connect.inc.php";
+}
+
+// 設定預設的資料庫類型
+if (!isset($sql)) {
+ // 從全域變數中取得資料庫類型
+ global $connection;
+
+ // 使用 DRIVER 常量(這是 Adminer 標準做法)
+ if (defined('DRIVER')) {
+ $sql = DRIVER;
+ } elseif (isset($connection)) {
+ // 根據連線物件判斷資料庫類型
+ if (method_exists($connection, 'server_info')) {
+ $sql = 'mysql'; // MySQL 連線
+ } elseif (method_exists($connection, 'getAttribute')) {
+ $sql = 'pgsql'; // PostgreSQL 連線
+ } else {
+ $sql = 'mysql'; // 預設值
+ }
+ } else {
+ $sql = 'mysql'; // 預設值
+ }
+}
+
header("Content-Type: text/javascript; charset=utf-8");
if ($_GET["script"] == "db") {