Mam problem z wyświetleniem odczytaniem rekordu.
Chciałbym aby skrypt spytał się mysql czy istnieje dany rekord i wyświetlił wynik jeśli tak. Następnie gdy wynik wyniesie 0, zostaje wpisany taki rekord do bazy.
Oto skrypt:
$pytanie = $polaczenie_bd->prepare("SELECT * FROM `".$przedrostek_bd."stopnie_dostepu` WHERE 'kategoria=gosc' 'nazwa_stopnia=Gość'"); $pytanie->execute(); $wynik = $pytanie->fetch(); if ($wynik > 0) { $sprawdzenie = false; } else { $sprawdzenie = true; } if ($sprawdzenie === true) { $pytanie = $polaczenie_bd->prepare("INSERT INTO `".$przedrostek_bd."stopnie_dostepu` (`poziom`, `kategoria`, `nazwa_stopnia`) VALUES ('1', 'gosc', 'Gość')"); $pytanie->execute(); }
$pytanie = $polaczenie_bd->prepare("SELECT * FROM `".$przedrostek_bd."stopnie_dostepu` WHERE 'poziom=:param1' 'kategoria=:param2' 'nazwa_stopnia=param3'"); $pytanie->bindValue(':param1', 1, PDO::PARAM_INT); $pytanie->bindValue(':param2', 'gosc', PDO::PARAM_STR); $pytanie->bindValue(':param3', 'Gość', PDO::PARAM_STR); $pytanie->execute(); $wynik = $pytanie->fetch(); if ($wynik > 0) { $sprawdzenie = false; } else { $sprawdzenie = true; } if ($sprawdzenie === true) { $pytanie = $polaczenie_bd->prepare("INSERT INTO `".$przedrostek_bd."stopnie_dostepu` (`poziom`, `kategoria`, `nazwa_stopnia`) VALUES ('1', 'gosc', 'Gość')"); $pytanie->execute(); }
A oto wynik błędu:
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '1' for key 'PRIMARY'' in /var/www/html/instalator/sql.php:193 Stack trace: #0 /var/www/html/instalator/sql.php(193): PDOStatement->execute() #1 /var/www/html/instalator/inst_5.php(14): include('/var/www/html/i...') #2 {main} thrown in /var/www/html/instalator/sql.php on line 193
Wiem, że chce ciągle zduplikować ten rekord, który już istnieje, lecz tak jak napisałem, coś nie mogę odczytać z bazy danych czy istnieje taki rekord. Wynik wyświetlałem już za pomoca pętli i nic nie wykazywał.