Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Vojta Pšenák
Tvůrce
Avatar
Vojta Pšenák:22.3.2014 12:48

Ahoj, mám soubor head.php s tímto obsahem:

require_once 'databaze.php';
class Head
{
        public $id;
        function __construct($id)
        {
                $this->id = $id;
        }
        public static function doctype()
        {
                echo "<!DOCTYPE> \n";
        }
        public static function title()
        {
                require_once 'databaze.php';
                Databaze::dotaz('
            SELECT * FROM (title) WHERE (id) LIKE (?)
        ', array($id123));
        }
}

V souboru databaze.php je

class Databaze {

    private static $spojeni;

    private static $nastaveni = Array(
        PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
        PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"
    );

    public static function pripoj($host, $uzivatel, $heslo, $databaze) {
        if (!isset(self::$spojeni)) {
            self::$spojeni = @new PDO(
                "mysql:host=$host;dbname=$databaze",
                $uzivatel,
                $heslo,
                self::$nastaveni
            );
        }
        return self::$spojeni;
    }

    public static function dotaz($sql, $parametry = array()) {
        $dotaz = self::$spojeni->prepare($sql);
        $dotaz->execute($parametry);
        return $dotaz;
    }

}

Potom mám v index.php

<?php
$id = $_GET['id'];
$head = new Head($id);
$head->title();
?>

Háže to chybu

Fatal error:  Call to a member function prepare() on a non-object

Nevíte co mám špatně? Moc děkuju

Editováno 22.3.2014 12:48
 
Odpovědět
22.3.2014 12:48
Avatar

Člen
Avatar
Odpovídá na Vojta Pšenák
:22.3.2014 12:52

A voláš někde

Databaze::pripoj($host, $uzivatel, $heslo, $databaze);

(připojil ses vůbec k té databázi)?

Editováno 22.3.2014 12:54
 
Nahoru Odpovědět
22.3.2014 12:52
Avatar
Vojta Pšenák
Tvůrce
Avatar
Odpovídá na
Vojta Pšenák:22.3.2014 17:20

Já jsem ale debil... Moc dík

 
Nahoru Odpovědět
22.3.2014 17:20
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Vojta Pšenák
David Hartinger:22.3.2014 18:01

Koukni na nové tutoriály pro začátečníky, řeší se tam databáze - http://www.itnetwork.cz/php/databaze

Nahoru Odpovědět
22.3.2014 18:01
New kid back on the block with a R.I.P
Avatar
mkub
Tvůrce
Avatar
Odpovídá na Vojta Pšenák
mkub:22.3.2014 18:17

skus sa pozriet do tutorialov o OOP v PHP

 
Nahoru Odpovědět
22.3.2014 18:17
Avatar
mkub
Tvůrce
Avatar
Odpovídá na David Hartinger
mkub:22.3.2014 18:19

myslim, ze to nie je problem PDO, ako ani databaz, ale myslim, ze skor ma chybu v PHP kode, konkretne sa jedna o volanie cudzej metody z metody objektu

 
Nahoru Odpovědět
22.3.2014 18:19
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 6 zpráv z 6.