當前位置: 首頁> 最新文章列表> mysqli::$server_info 返回的數據庫信息包含哪些字段?如何解析這些數據?

mysqli::$server_info 返回的數據庫信息包含哪些字段?如何解析這些數據?

gitbox 2025-09-17
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// 文章開頭與正文無關的部分</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"這是文章開頭的無關輸出\n"</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"一些調試信息或歡迎語可以放在這裡\n"</span></span><span>;
</span><span><span class="hljs-meta">?></span></span><span>

<hr>

</span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// 正文開始</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"<h1>mysqli::\$server_info 返回的數據庫信息包含哪些字段?如何解析這些數據?</h1>"</span></span><span>;

</span><span><span class="hljs-comment">// 正文內容</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"<p>在使用 PHP 的 <code>mysqli
" ; echo "

返回的字符串通常是MySQL 服務器的版本信息,例如:

"
; echo "
  • 8.0.33
  • 5.7.39-log
  • 10.5.18-MariaDB
"
;
echo "

從這些字符串中,我們可以看到:

"
; echo "
  • 主版本號、次版本號和修訂號
  • 可能包含服務器的附加信息,如-log-MariaDB
"
;
echo "

2. 如何解析這些數據

"
; echo "

解析server_info通常是為了獲取版本號,以便根據不同版本啟用不同功能。下面是一個示例:

"
; echo "
\$serverInfo = \$mysqli->server_info;

// 使用正則提取主版本號、次版本號和修訂號
if (preg_match('/^(\\d+)\\.(\\d+)\\.(\\d+)/', \$serverInfo, \$matches)) {
    \$major = \$matches[1]; // 主版本號
    \$minor = \$matches[2]; // 次版本號
    \$patch = \$matches[3]; // 修訂號
    echo \"數據庫版本: \$major.\$minor.\$patch\";
} else {
    echo \"无法解析數據庫版本信息\";
}
"
;
echo "

上面的代碼使用正則表達式匹配版本號的三個主要部分,無論是MySQL 還是MariaDB,都可以正確解析主要數字信息。

"
; echo "

3. 解析附加信息

"
; echo "

有時候版本字符串中還包含額外信息,比如-log-MariaDB等。我們可以通過strpos或者正則來判斷:

"
; echo "
if (strpos(\$serverInfo, 'MariaDB') !== false) {
    echo \"這是 MariaDB 資料庫\";
} else {
    echo \"這是 MySQL 資料庫\";
}
"
;
echo "

通過這種方式,可以在代碼中根據數據庫類型或版本選擇不同的邏輯,保證應用程序的兼容性和穩定性。

"
; echo "

總結

"
; echo "

mysqli::\$server_info提供了數據庫服務器的版本信息,主要包括主版本號、次版本號、修訂號以及可能的附加信息。通過正則表達式或字符串函數,可以靈活地解析這些信息,輔助應用程序做出版本和類型判斷。

"
; ?>