လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> ဆက်သွယ်မှုတစ်ခုပျက်ကွက်သောအခါ MySQL ဆာဗာသတင်းအချက်အလက်ကိုမည်သို့ရယူရမည်နှင့် MySQLI :: $ server_info မှတစ်ဆင့်၎င်းကိုမည်သို့လုပ်ဆောင်ရမည်နည်း။

ဆက်သွယ်မှုတစ်ခုပျက်ကွက်သောအခါ MySQL ဆာဗာသတင်းအချက်အလက်ကိုမည်သို့ရယူရမည်နှင့် MySQLI :: $ server_info မှတစ်ဆင့်၎င်းကိုမည်သို့လုပ်ဆောင်ရမည်နည်း။

gitbox 2025-06-11

在使用 PHP 的MySQLI扩展连接 MYSQL 数据库时, 遇到连接失败是很常见的情况။ 遇到连接失败是很常见的情况, 但有时我们也希望获取服务器的一些信息以辅助诊断, 比如, 比如 mySQL 服务器版本等။

本文将讲解如何使用MySQLI类的$ server_info属性在连接成功后获取服务器信息, 帮助你更好地掌握数据库连接状态, 帮助你更好地掌握数据库连接状态။


1 ။ 连接 MySQL 的基本示例

首先,

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-variable">$mysqli</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title function_ invoke__">mysqli</span></span><span>(</span><span><span class="hljs-string">'gitbox.net'</span></span><span>, </span><span><span class="hljs-string">'username'</span></span><span>, </span><span><span class="hljs-string">'password'</span></span><span>, </span><span><span class="hljs-string">'database'</span></span><span>);

</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$mysqli</span></span><span>-&gt;connect_error) {
    </span><span><span class="hljs-keyword">die</span></span><span>(</span><span><span class="hljs-string">'&#36830;&#25509;&#22833;&#36133;&#65292;&#38169;&#35823;&#20195;&#30721;&#65306;'</span></span><span> . </span><span><span class="hljs-variable">$mysqli</span></span><span>-&gt;connect_errno . </span><span><span class="hljs-string">'&#65292;&#38169;&#35823;&#20449;&#24687;&#65306;'</span></span><span> . </span><span><span class="hljs-variable">$mysqli</span></span><span>-&gt;connect_error);
}

</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">'&#25104;&#21151;&#36830;&#25509;&#21040; MySQL &#26381;&#21153;&#22120;&#65292;&#29256;&#26412;&#20449;&#24687;&#65306;'</span></span><span> . </span><span><span class="hljs-variable">$mysqli</span></span><span>-&gt;server_info;

</span><span><span class="hljs-variable">$mysqli</span></span><span>-&gt;</span><span><span class="hljs-title function_ invoke__">close</span></span><span>();
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

在这里, $ MySQLI-> server_info会返回服务器版本信息, 比如8.0.31


2 ။ 连接失败时获取服务器信息?

需要说明的是, $ server_info只能在连接成功后使用။ 如果连接失败, 比如网络不通或者认证失败, 是无法通过$ server_info获取任何信息的, 获取任何信息的, 因为没有建立起有效连接။

因此, 若你希望在连接失败时仍能获取到服务器信息, 必须先保证连接成功, 或者通过其他手段 (比如尝试 ping 服务器或使用其他接口) 来辅助判断။


3 ။ 实际场景中的错误处理示范

这里是一个结合错误检测与服务器信息获取的示例:

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-variable">$mysqli</span></span><span> = @</span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title function_ invoke__">mysqli</span></span><span>(</span><span><span class="hljs-string">'gitbox.net'</span></span><span>, </span><span><span class="hljs-string">'username'</span></span><span>, </span><span><span class="hljs-string">'password'</span></span><span>, </span><span><span class="hljs-string">'database'</span></span><span>);

</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$mysqli</span></span><span>-&gt;connect_errno) {
    </span><span><span class="hljs-comment">// &#36830;&#25509;&#22833;&#36133;&#65292;&#36755;&#20986;&#38169;&#35823;&#30721;&#21644;&#38169;&#35823;&#20449;&#24687;</span></span><span>
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">'&#36830;&#25509;&#22833;&#36133;&#65292;&#38169;&#35823;&#20195;&#30721;&#65306;'</span></span><span> . </span><span><span class="hljs-variable">$mysqli</span></span><span>-&gt;connect_errno . </span><span><span class="hljs-string">'&lt;br&gt;'</span></span><span>;
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">'&#38169;&#35823;&#20449;&#24687;&#65306;'</span></span><span> . </span><span><span class="hljs-variable">$mysqli</span></span><span>-&gt;connect_error . </span><span><span class="hljs-string">'&lt;br&gt;'</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
    </span><span><span class="hljs-comment">// &#36830;&#25509;&#25104;&#21151;&#65292;&#33719;&#21462;&#26381;&#21153;&#22120;&#20449;&#24687;</span></span><span>
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">'&#25104;&#21151;&#36830;&#25509; MySQL&#65292;&#26381;&#21153;&#22120;&#29256;&#26412;&#65306;'</span></span><span> . </span><span><span class="hljs-variable">$mysqli</span></span><span>-&gt;server_info;
}

</span><span><span class="hljs-variable">$mysqli</span></span><span>-&gt;</span><span><span class="hljs-title function_ invoke__">close</span></span><span>();
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

@这里使用了抑制了构造函数的警告输出, 通过$ MySQLI-> Connect_ERRNO判断错误။


4 ။ 总结和建议

  • MySQLI :: $ server_info只能在连接成功后调用, 否则会报错或返回空။

  • 连接失败时, 优先使用$ mysqli-> Connect_errno$ MySQLI-> Connect_ERRORS来判断原因။

  • 如果想要在连接失败时了解服务器状态, 可以考虑使用网络层工具 (如 ping 命令, telnet) 或服务器端日志။

  • 结合捕获异常和错误处理机制, 提升程序的健壮性和用户体验။


这样, 在遇到连接失败时, 我们可以清晰地捕获并输出错误信息, 并在成功连接后获取服务器版本等详细信息, 帮助我们排查和处理问题, 帮助我们排查和处理问题။

  • သက်ဆိုင်သောတက်(ဂ်)များ:

    mysqli MySQL