Taki zapis jest wystarczający if ($polaczenie->connect_errno), bo gdy nie ma błędu $polaczenie->connect_errno zwraca 0 (zero) i w php jest to traktowane jako false a każda inna wartość (kod błędu - liczba większa od zera - w przypadku connect_errno, bo każda inna wartość niż zero to też true) to true.
<?php
require_once "connect.php";
$polaczenie = @new mysqli($hostname, $username, $userpass, $dbname);
if ($polaczenie->connect_errno)
{
echo "Error: " . $polaczenie->connect_error; // treść komunikatu błędu
}
else
{
echo "It works";
}
$polaczenie->close();
?>
no i niezależnie od wyniku if-a lepiej jest zamknąć połączenie z "bazą danych", czyli "wyciągnij" $polaczenie->close() poza warunek.
[ UPDATE ]
Operator @ powoduje, że "silnik" php-a nie "wypluwa błędów na ekran".
echo '<h1>Bez użycia operatora @</h1>';
$polaczenie = new mysqli($hostname, $username, $userpass, $dbname);
if ($polaczenie->connect_errno)
echo "Error: " . $polaczenie->connect_error;
echo '<br /><br /><h1>Z użyciem operatora @</h1>';
$polaczenie = @new mysqli($hostname, $username, $userpass, $dbname);
if ($polaczenie->connect_errno)
echo "Error: " . $polaczenie->connect_error;
How to log errors and warnings into a file in php?
P.S. Jeżeli po warunku "występuje" tylko jedna linia kodu, możesz pominąć klamry { .. }
<?php
require_once "connect.php";
$polaczenie = @new mysqli($hostname, $username, $userpass, $dbname);
if ($polaczenie->connect_errno)
echo "Error: " . $polaczenie->connect_error; // treść komunikatu błędu
else
echo "It works";
$polaczenie->close();
?>