Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL] - obsługa błędnych zapytań w bazie danych
Forum PHP.pl > Forum > PHP
arlid
Witajcie. Chciałbym sprawdzać, czy zapytanie zostało wykonane i czy zostało poprawnie napisane. Zrobiłem na szybko coś takiego:

  1. <?php
  2. $host = "host";
  3. $db_user = "nazwa";
  4. $db_password = "pass";
  5. $db_name = "nazwa_db";
  6.  
  7. try {
  8. $polaczenie = new PDO('mysql:host='.$host.';dbname='.$db_name.'',$db_user, $db_password, array(
  9. PDO::ATTR_EMULATE_PREPARES => false,
  10. PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
  11. )
  12. );
  13. } catch (PDOException $e) {
  14. echo "Error: " . $e->getMessage();
  15. }
  16.  
  17.  
  18. $query = "SELECT * from v_uzytkownicy";
  19. $polaczenie -> exec($query);
  20. echo $polaczenie->errorCode();
  21. ?>


I owszem, kiedy zapytanie jest poprawne mam kod 00000. Dlaczego nie mam żadnego błędu, kiedy zmienię coś w zapytaniu - przykładowo wstawię nieistniejącą tabelę? Podobnie tutaj:

  1. $stmt = $polaczenie->prepare("SELECT * FROM v_uzgytkownicy");
  2. $stmt->execute();
  3.  
  4. if ($stmt) {
  5. echo "ok";
  6. }else{
  7. echo "błąd";
  8. }


Gdzie tkwi błędne myślenie?
KsaR
Chyba musisz przed execute tongue.gif
Tzn po prepare.

  1. $q='SELECT * FROM `nonexists`';
  2. $x=$pdo->prepare($q);
  3.  
  4. if ($x)
  5. {
  6. $x->execute();
  7. }
  8. else
  9. {
  10. exit('coś poszło nie tak z zapytaniem: '.$q);
  11. }
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.