Diskuze: SELECT s mysqli_prepare();
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 3 zpráv z 3.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Problém je, že nikde nezískáváš výsledek dotazu, který potřebuješ kontrolovat, ale místo toho v podmínce kontroluješ instanci mysqli_stmt, což se vždycky vyhodnotí jako true. Uprav si to podle kódu níže a mělo by ti to fungovat, zejména se zaměř na část, kde se volají metody mysqli_stmt_bind_result() a mysqli_stmt_fetch().
$connection = mysqli_connect("localhost", "root", "", "databaze_1");
$stmt = mysqli_prepare($connection, 'SELECT COUNT(*) FROM uzivatele WHERE email=?');
$email = '[email protected]';
mysqli_stmt_bind_param($stmt, 's', $email);
mysqli_stmt_execute($stmt);
// Namapování výsledku do proměnné count
mysqli_stmt_bind_result($stmt, $count);
// Naplnění proměnné count
mysqli_stmt_fetch($stmt);
echo $count > 0 ? 'Tento E-mail je již obsazen.' : 'Tento E-mail je volný.';
mysqli_stmt_close($stmt);
Ja by som to možno riešil elegantnejšie. Čo použiť niečo takéto:
try{
SQL insert;
} catch (UNIQE EXCEPTION, $exception){
echo 'Email už existuje';
}
Zobrazeno 3 zpráv z 3.