[PHP] OOP - Błąd funkcji


(Patrol) #1

Witam!

Główkuję i główkuję i nie mogę rozkminić błędu który otrzymuję:

Fatal error: Call to a member function real_escape_string() on a non-object in /home/admin/domains/strona.com/public_html/fun/main.php on line 80

Kod w tej lini jest następujący:

public function Select($tablee,$columnn,$whats) {

    $escape = sprintf("SELECT * FROM %s WHERE %s='%s'", $this->mysqli->real_escape_string($tablee), $this->mysqli->real_escape_string($columnn), $this->mysqli->real_escape_string($whats));

    return $this->mysqli->query($escape)->fetch_array();

  }

Funkcja real_escape_string działa bez zarzutów z insertami, updatami, ale z select wypluwa ten zacny błąd.


(kalitt) #2

Błąd wskazuje na to że w zmiennej mysali nie jest utworzona ta metoda "real_escape_string()" lub w ogóle cały obiekt.


(Grzesie K) #3

Spróbuj może podmienić tą metodę na funkcję proceduralną mysqli_real_escape_string i zobacz jaki błąd ci w tedy wyrzuci.


(Drobok) #4

sprintf zwraca ilość znaków w ciągu a nie sam ciąg, swoją drogą po co ci tam ta funkcja ?

Zamiast używać 3x odwołania, użyj raz na całym ciągu to zapytanie nie jest aż tak długie by przebić 3 odwołania i tak wszystko będzie sprawdzone


(Patrol) #5

Problem leży z tego co widzę w czymś innym. W innych klasach które dziedziczą klasę z funkcjami mysql (jedną z funkcji podałem) ta i inne funkcje działają bez zarzutu. Problem pojawia się w klasie payout, funkcje z mysql sypią się i pokazują ten błąd.

Błąd jest jakiś dobitny, w jednej klasie jak wywołam

$this->Select('users','id',$_SESSION['id']);

nie wywali błędu, a w drugiej wywali, a wszystkie dziedziczą klasę główną z funkcjami mysql.


(Grzesie K) #6

Bez całości kodu to możemy tutaj bardzo długo prowadzić te nasze pogaduszki czysto teoretyczne...