接続エラーの後に else の後のステートメントが実行されるのはなぜですか?解決

WBOY
リリース: 2016-06-13 13:32:55
オリジナル
792 人が閲覧しました

接続エラーの後に else の後のステートメントが実行されるのはなぜですか?

PHP コード
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--><?php
    $mysqli=new mysqli('localhost','root','root1','mydb');

    if ($mysqli->connect_error){
        die("连接失败".$mysqli->connect_error);
    }else{
        echo "连接成功";
    };
?>
ログイン後にコピー

上記のコードでは、root を意図的に root1 として記述しました。変更しないと、ページには接続が成功したことが表示されますが、接続は失敗します。エラー ページは次のように表示されます
警告: mysqli: :mysqli() [mysqli.mysqli]: (28000/1045): C:wampwwwProject1f のユーザー 'root'@'localhost' (パスワードを使用: YES) のアクセスが拒否されました。 .php 行 2

警告: main() [function.main]: C:wampwwwProject1f.php の行 4 で mysqli を取得できませんでした
接続は成功しました
接続はなぜ行われましたかエラーが発生し、ダイ内の接続障害情報が表示されませんでしたか?
接続が失敗した場合でも、else で接続が成功したと表示されるのはなぜですか?

-----解決策---------
それは非常に簡単です
接続が失敗した場合、$mysqli は無効です
if ($mysqli->connect_error)
$mysqli はオブジェクトではなく、真のブランチに入ることができないためです

したがって、「接続成功」のエコーのみが実行されます;
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!