Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP] Błąd połączenia PDO (Programowanie obiektowe)
Kerth
post
Post #1





Grupa: Zarejestrowani
Postów: 250
Pomógł: 1
Dołączył: 6.08.2012

Ostrzeżenie: (0%)
-----


Cześć,
próbuję zrozumieć co jest źle w poniższym kodzie, że pojawiaja się ostrzeżenia. Co robię źle?
  1. class __construct{
  2. private $host = "localhost";
  3. private $username = "root";
  4. private $password = "pass";
  5. private $database = "database";
  6.  
  7. public function SQLConnection($host, $username, $password, $database){
  8. try{
  9. $db = new PDO('mysql:host='.$host.';dbname='.$database.'', ''.$username.'', ''.$password.'',array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
  10. echo 'Połączenie nawiązane!';
  11. }catch(PDOException $e){
  12. echo 'Połączenie nie mogło zostać utworzone.';
  13. }
  14.  
  15. }


Kod
Warning: Missing argument 1 for __construct::SQLConnection(), called in C:\WebServ\httpd\oop_mvc\index.php on line 12 and defined in C:\WebServ\httpd\oop_mvc\controller\ConfigDatabase.class.php on line 18

Warning: Missing argument 2 for __construct::SQLConnection(), called in C:\WebServ\httpd\oop_mvc\index.php on line 12 and defined in C:\WebServ\httpd\oop_mvc\controller\ConfigDatabase.class.php on line 18

Warning: Missing argument 3 for __construct::SQLConnection(), called in C:\WebServ\httpd\oop_mvc\index.php on line 12 and defined in C:\WebServ\httpd\oop_mvc\controller\ConfigDatabase.class.php on line 18

Warning: Missing argument 4 for __construct::SQLConnection(), called in C:\WebServ\httpd\oop_mvc\index.php on line 12 and defined in C:\WebServ\httpd\oop_mvc\controller\ConfigDatabase.class.php on line 18
Połączenie nawiązane!
Fatal error: Call to a member function query() on a non-object in C:\WebServ\httpd\oop_mvc\controller\ConfigDatabase.class.php on line 28
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Kerth
post
Post #2





Grupa: Zarejestrowani
Postów: 250
Pomógł: 1
Dołączył: 6.08.2012

Ostrzeżenie: (0%)
-----


Spróbowałem wykorzystać to $this i utworzyłem taki kod:
  1. <?php
  2.  
  3. /**
  4.  * TITLE: Connecting class with MySQL Databas
  5.  */
  6.  
  7.  
  8.  
  9. class Database{
  10. public $host = "localhost";
  11. public $username = "root";
  12. public $password = "";
  13. public $database = "portal";
  14.  
  15. public function SQLConnection($host, $username, $password, $database){
  16.  
  17. try{
  18. $db = new PDO(
  19. 'mysql:host='.$this->host.';
  20. dbname='.$this->database.'',
  21. ''.$this->username.'',
  22. ''.$this->password.'',
  23. array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
  24.  
  25. }catch(PDOException $e){
  26. echo 'Connection failed: ' . $e->getMessage();
  27. }
  28. }
  29.  
  30. }
  31.  
  32.  
  33. ?>

Teraz wszystko jest OK. Po wpisaniu złych danych otrzymuję komunikat o błędzie. Obyło się bez warunku sprawdzającego. Czy możesz mi powiedzieć czy dobrze to zrobiłem czy coś jest nie tak pod względem optymalności?
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 15.10.2025 - 00:15