Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP] eval() i skrypt z bazy danych, Error
ramzeso
post
Post #1





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 24.07.2011

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


Witam,

Mam taki problem. W bazie danych przechowuje pewien kod php który odczytuje z bazy danych i wykonuje funkcją eval. Wcześniej działało, teraz przestało nie wiem czemu. Niestety napotkałem taki o to error

  1. Catchable fatal error: Object of class mysqli_result could not be converted to string in /srv/home/vhh64891/public_html/bartlex.com/cms/functions_db.php(125) : eval()'d code on line 1


A tu linijka 125 odpowiedzialnia na funkcje eval

  1. $wynik = $lacz->query('select content from eporada');
  2. if (!$wynik)
  3. {
  4. throw new Exception('Blad bazy.');
  5. }
  6. if ($wynik->num_rows>0)
  7. {
  8. $content=$wynik->fetch_assoc();
  9. eval($content['content']);
  10. }


Przyznam że gdy wartością $content['content'] jest taki o to skrypt

  1. echo "Usługa eporada nie jest aktywna";


Działa,

Natomiast z większym skryptem takim jak ten

  1. if(mail($sendto, "E-porada www.bartex.com => ".$email, $message, $header))
  2. {
  3. echo "Zapytanie zostało wysłane poprawnie, dziękujemy.";
  4. }
  5. else
  6. {
  7. echo "<p><b>Nie</b> wysłano maila!</p>";
  8. }


Nie wiem czy dobrze kombinuje ale nawet jak na sztywno nie z bazy danych wrzuci się do $cos ten skrypt i wykona eval($cos) jest taki sam error, może cudzysłowia? nie wiem.

Wywala właśnie taki error.

Próbowałm debugować, wyrzucić to na ekran bez eval() wygląda to poprawnie, nie wiem co może być przyczyną.
Trochę wcześniej w necie szukałem, ale głownie były to problemy że ktos nie uzywał fetch, u mnie to jest.

Ten post edytował ramzeso 10.09.2011, 09:39:06
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




1) Problem nie ma żadnego związku z bazą danych. Przenoszę.
2) Dostajesz komunikat błędu. Przetłumaczyłeś go chociaż? Przecież masz czarno na białym napisane, że próbujesz obiekt zamienić na tekst. Sprawdzałeś co w ogóle masz w tej zmiennej??
var_dump($content['content']);


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
ramzeso
post
Post #3





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 24.07.2011

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


Przecież napisałem że wyrzucałem na ekran i wszystko wygląda poprawnie jak tekst. Po za tym var_dump wyrzuca że jest to string(256). I z całym szacunkiem to bardzo dobrze zrozumiałem komunikat o błędzie.

Ten post edytował ramzeso 12.09.2011, 08:42:10
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




W takim razie jedna z tych zmiennych
$sendto, $email, $message, $header
jest obiektem. Sprawdź też je - dość logiczne, jeśli naprawdę zrozumiałeś komunikat błędu wink.gif


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
ramzeso
post
Post #5





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 24.07.2011

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


Teraz wszystko jest jasne, przedeklarowalem jedna zmienna i użyłem jej do odczytania innej wartości z BD, var_dump pomógł.
Dzięki za pomoc!
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 15:01