Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Call to a member function prepare() on a non-object
troian
post
Post #1





Grupa: Zarejestrowani
Postów: 184
Pomógł: 2
Dołączył: 3.02.2013

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


Tak jak w tytule tematu, skrypt zwraca mi błąd:

Kod
Fatal error: Call to a member function prepare() on a non-object in include.db.php on line 33


  1. class db
  2. {
  3. protected static $host;
  4. protected static $port;
  5. protected static $user;
  6. protected static $pass;
  7. private static $pdo;
  8.  
  9. public function __construct()
  10. {
  11. self::$host = HOST;
  12. self::$port = PORT;
  13. self::$user = USER;
  14. self::$pass = PASS;
  15. $options = array(
  16. PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES UTF8'
  17. );
  18. try
  19. {
  20. self::$pdo = new PDO("mysql:host={self::$host};port={self::$port}", self::$user, self::$pass, $options);
  21. self::$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  22. }
  23. catch(PDOException $error)
  24. {
  25. die("ERROR CONNECT: " . $error->getMessage());
  26. }
  27. }
  28.  
  29. public static function query($query='',$value=array(),$type="true")
  30. {
  31. try
  32. {
  33. $query = self::$pdo->prepare($query);
  34. switch($type)
  35. {
  36. case 'true':
  37. case 'false':
  38. $tab = array('true' => array(0 =>'true',1=>'false'),'false' => array(0 =>'false',1=>'true'));
  39. $result = $query->execute($value) ? $tab[$type][0] : $tab[$type][1];
  40. break;
  41. default:
  42. $result = $query->execute($value) ? $query->$type() : false;
  43. }
  44. }
  45. catch(PDOException $error)
  46. {
  47. die("ERROR QUERY: " . $error->getMessage());
  48. }
  49.  
  50. return $result;
  51. }
  52. }
  53.  


dokładnie chodzi o tą oto linijkę
Kod
$query = self::$pdo->prepare($query);
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
troian
post
Post #2





Grupa: Zarejestrowani
Postów: 184
Pomógł: 2
Dołączył: 3.02.2013

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


Wykonałem to w taki sposób,

Czy jest to prawidłowe ?

  1. class db
  2. {
  3. public function connect()
  4. {
  5. $host = HOST;
  6. $port = PORT;
  7. $user = USER;
  8. $pass = PASS;
  9. $options = array(
  10. PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES UTF8'
  11. );
  12. try
  13. {
  14. $connect = new PDO("mysql:host={$host};port={$port}", $user, $pass, $options);
  15. $connect->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  16. return $connect;
  17. }
  18. catch(PDOException $error)
  19. {
  20. die("ERROR CONNECT: " . $error->getMessage());
  21. }
  22. }
  23.  
  24. public function query($query='',$value=array(),$type="true",$cashe=0)
  25. {
  26. try
  27. {
  28. $query = db::connect()->prepare($query);
  29. switch($type)
  30. {
  31. case 'true':
  32. case 'false':
  33. $tab = array('true' => array(0 =>'true',1=>'false'),'false' => array(0 =>'false',1=>'true'));
  34. $result = $query->execute($value) ? $tab[$type][0] : $tab[$type][1];
  35. break;
  36. default:
  37. $result = $query->execute($value) ? $query->$type() : false;
  38. }
  39. }
  40. catch(PDOException $error)
  41. {
  42. die("ERROR QUERY: " . $error->getMessage());
  43. }
  44.  
  45. return $result;
  46. }


funkcję query wykonuje tak:
  1. db::query('SELECT * FROM `'.CMS.'`.`web_config`',array(),'fetch');




Ten post edytował troian 24.06.2016, 14:28:49
Go to the top of the page
+Quote Post

Posty w temacie
- troian   [PHP] Call to a member function prepare() on a non-object   23.06.2016, 12:27:49
- - nospor   Sie zdecyduj. Albo uzywasz STATIC albo normalnie o...   23.06.2016, 13:40:23
- - troian   Cytat(nospor @ 23.06.2016, 14:40:23 )...   23.06.2016, 14:01:40
- - nospor   Nie, nie jest dobrze napisane.... Po grzyba w que...   23.06.2016, 14:14:17
- - troian   to w jaki sposób wywołać obiekt pdo ? $this-...   23.06.2016, 14:21:06
- - nospor   Pokaz jak odpalasz funckje query(). I ogolnie poka...   23.06.2016, 14:37:36
- - LowiczakPL   No więc na szybko metoda query jest statyczna a...   23.06.2016, 22:12:59
- - troian   Wykonałem to w taki sposób, Czy jest to prawidło...   24.06.2016, 14:10:31
- - nospor   Cos ty sie uparl na tworzenie tych obiektow? W ko...   24.06.2016, 14:41:18
- - troian   Cytat(nospor @ 24.06.2016, 15:26:58 )...   24.06.2016, 14:43:02
- - nospor   Wszystko dlatego ze query odpalassz statycznie: db...   24.06.2016, 14:46:55
- - troian   No ale jeżeli 10-15 plików będzie się tak generowa...   24.06.2016, 16:21:18
- - nospor   Obiekt db tworzy sie tylko i wylacznie RAZ. Raz ut...   24.06.2016, 16:29:44
- - troian   Cytat(nospor @ 24.06.2016, 17:29:44 )...   24.06.2016, 16:51:40
- - viking   To zależy. Jest możliwość wykonania "lazy loa...   24.06.2016, 19:20:22
- - troian   To w jaki sposób działa to w joomli ? bo ja własni...   25.06.2016, 09:17:27
- - Pyton_000   Zmień obiekt zainteresowania (czy. Jomla)   25.06.2016, 09:18:34
- - troian   Cytat(Pyton_000 @ 25.06.2016, 10:18:3...   25.06.2016, 10:01:29
- - viking   Podałem ci już link. Zobacz inne komponenty typu z...   25.06.2016, 10:19:04
- - troian   Cytat(viking @ 25.06.2016, 11:19:04 )...   25.06.2016, 12:06:08
- - com   LowiczakPL a Ty jak chcesz pomagać, to czytaj uważ...   28.06.2016, 13:20:51


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: 14.10.2025 - 17:27