Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]PDO
Forum PHP.pl > Forum > Przedszkole
koniol2
Dostaje taki błąd co może być przyczyna dodam ze na localhoscie działa a na serwerze nie.
Kod
Call to a member function prepare() on a non-object in
Turson
Ciężko zgadnąc bez kawalka kodu
koniol2
Kod
function connect() {
    try {
      
        $dbh = new PDO('mysql:host=' . HOST . ';dbname=' . DBNAME, USER, PASS);
        $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    } catch (Exception $e) {
        $error .= "Błąd nie można sie połączyc z bazą danych!: " . $e->getMessage() . "<br/>";
        $dbh = NULL;
    }
    return $dbh;

function update($id) {
    $dbh = connect();
        foreach ($id as $key => $value) {
            $stmt = $dbh->prepare("UPDATE `zapisy` SET `platnosc` =2 WHERE id =:id");
            $stmt->bindValue(':id', $value, PDO::PARAM_INT);
            $stmt->execute();
        }
}
}


Mysql mam na innym serwerze
Turson
Podejrzewam, że łapie wyjątek i $dbh = NULL; więc zwraca takie cuś.
ZaXaZ
po return $dbh; nie zamykasz funkcji }
by_ikar
Szczerze to ten pomysł jest tak czy inaczej kiepski. Ponieważ za każdym razem kiedy użyjesz connect(), za każdym razem zostanie utworzone nowe połączenie, i dość szybko nawet dla jednego requesta, możesz osiągnąć limit połączeń. Już lepiej żebyś w tym przypadku przekazał połączenie jako parametr, albo nawet jako global. A jeszcze lepiej, jakbyś to opakował w jakąś małą klasę (wrapper). A wystarczy wrzucić w google zapytanie i znajdziesz dziesiątki klas, jak chociażby ta: http://stackoverflow.com/questions/6740153...ple-pdo-wrapper
koniol2
Chce wogule przepisać ta stronę na CodeIgniter ale zaczolem strukturalnie a strona ma być na już i ciągle dochodzą jakieś nowe funkcjonalnosci a i też nie mam zbyt dużego doświadczenia w oop i mam obawy.dzięki za linka napewno sie przyda
by_ikar
Akurat OOP w przypadku użycia jednej klasy nie jest ci do niczego potrzebne, musisz jedynie wiedzieć jak się odwoływać do metod i jak je przekazywać. A jeżeli projekt cały jest strukturalny, to albo globale/metody statyczne, albo przekazywanie jako parametr.
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.