接続エラーの後に 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 はオブジェクトではなく、真のブランチに入ることができないためです
したがって、「接続成功」のエコーのみが実行されます;