Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]PDO
koniol2
post
Post #1





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 27.08.2010

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


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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
Turson
post
Post #2





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


Ciężko zgadnąc bez kawalka kodu
Go to the top of the page
+Quote Post
koniol2
post
Post #3





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 27.08.2010

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


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

Ten post edytował koniol2 30.07.2014, 08:27:31
Go to the top of the page
+Quote Post
Turson
post
Post #4





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


Podejrzewam, że łapie wyjątek i $dbh = NULL; więc zwraca takie cuś.
Go to the top of the page
+Quote Post
ZaXaZ
post
Post #5





Grupa: Zarejestrowani
Postów: 285
Pomógł: 18
Dołączył: 30.01.2014
Skąd: <?=$_GET['city']?>

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


po return $dbh; nie zamykasz funkcji }

Ten post edytował ZaXaZ 30.07.2014, 09:58:42
Go to the top of the page
+Quote Post
by_ikar
post
Post #6





Grupa: Zarejestrowani
Postów: 1 798
Pomógł: 307
Dołączył: 13.05.2009
Skąd: Gubin/Wrocław

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


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
Go to the top of the page
+Quote Post
koniol2
post
Post #7





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 27.08.2010

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


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
Go to the top of the page
+Quote Post
by_ikar
post
Post #8





Grupa: Zarejestrowani
Postów: 1 798
Pomógł: 307
Dołączył: 13.05.2009
Skąd: Gubin/Wrocław

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


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.
Go to the top of the page
+Quote Post

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.09.2025 - 05:17