Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Problem z mysql_real_escape_string
sq6aah
post
Post #1





Grupa: Zarejestrowani
Postów: 71
Pomógł: 0
Dołączył: 12.10.2009

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


Witam,
dlaczego funkacja mysql_real_escape_string
  1. $tresc=mysql_real_escape_string($tresc);

Zwraca błąd: Warning: mysql_real_escape_string() expects parameter 2 to be resource, object given in Warning: mysql_real_escape_string() expects parameter 2 to be resource, object given in
Z góry dziękuje za pomoc.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 9)
rafalp
post
Post #2





Grupa: Zarejestrowani
Postów: 224
Pomógł: 18
Dołączył: 4.02.2003
Skąd: Częstochowa

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


Za drugi parametr tej funkcji musisz dać link do połączenia z bazą danych.

  1. $link = mysql_connect('mysql_host', 'mysql_user', 'mysql_password')


Ten post edytował rafalp 23.02.2010, 19:29:42
Go to the top of the page
+Quote Post
sq6aah
post
Post #3





Grupa: Zarejestrowani
Postów: 71
Pomógł: 0
Dołączył: 12.10.2009

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


  1. $tresc=mysql_real_escape_string($tresc, $bd_lacz);
  2. $sql= "insert into poczta (
  3. `id` ,
  4. `nadawca` ,
  5. `odbiorca` ,
  6. `tytul` ,
  7. `tresc` ,
  8. `data`
  9. )
  10. values ('', '$login', '$odbiorca', '$temat','$tresc', '$data')";
  11. $wynik=$bd_lacz->query($sql);


To samo.. A połączenie z bazą jest prawidłowe.
Go to the top of the page
+Quote Post
bemol
post
Post #4





Grupa: Zarejestrowani
Postów: 286
Pomógł: 29
Dołączył: 5.04.2007
Skąd: Rymanów Zdrój/Rzeszów

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


  1. $sql= "insert into poczta (
  2. `id` ,
  3. `nadawca` ,
  4. `odbiorca` ,
  5. `tytul` ,
  6. `tresc` ,
  7. `data`
  8. )
  9. values ('', '$login', '$odbiorca', '$temat','$tresc', '$data')";
  10. $wynik=$bd_lacz->query($sql);
  11. $tresc=mysql_real_escape_string($tresc, $wynik);
Go to the top of the page
+Quote Post
rafalp
post
Post #5





Grupa: Zarejestrowani
Postów: 224
Pomógł: 18
Dołączył: 4.02.2003
Skąd: Częstochowa

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


W przypadku używania klasy odpowiedzialnej za bazę, Twoje $bd_lacz to nie będzie "linkiem".
W moim frameworku analogicznie w modelu mam DB->query(..) i "DB" na pewno nie jest linkiem połączenia z bazą, ten "link" znajduje sie w samej klasie DB, więc musisz dopisać klasę do Twojej $bd_lacz która będzie odpowiedzialna za to co robi mysql_real_escape_string - bo dopiero w tej klasie będziesz w stanie uzyskać link żeby go zastosować w tej funkcji.

@bemol - bzdury.

Ten post edytował rafalp 23.02.2010, 19:56:45
Go to the top of the page
+Quote Post
sq6aah
post
Post #6





Grupa: Zarejestrowani
Postów: 71
Pomógł: 0
Dołączył: 12.10.2009

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


A nie?
  1. $tresc=mysql_real_escape_string($tresc, $bd_lacz);


Ale i tak nie pomaga.
Go to the top of the page
+Quote Post
bemol
post
Post #7





Grupa: Zarejestrowani
Postów: 286
Pomógł: 29
Dołączył: 5.04.2007
Skąd: Rymanów Zdrój/Rzeszów

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


a sprawdź nie używając klasy i będziesz wiedział, gdzie masz błąd.
Go to the top of the page
+Quote Post
sq6aah
post
Post #8





Grupa: Zarejestrowani
Postów: 71
Pomógł: 0
Dołączył: 12.10.2009

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


Normalnie działa. Ale czy nie można przez klase?
Go to the top of the page
+Quote Post
bemol
post
Post #9





Grupa: Zarejestrowani
Postów: 286
Pomógł: 29
Dołączył: 5.04.2007
Skąd: Rymanów Zdrój/Rzeszów

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


Jeśli nie masz takiego linku to raczej nie.
Sprawdź, czy przed funkcją mysql_real_escape_string zamykasz połączenie.
Jeśli nie, to według manuala:
Kod
If link_identifier  isn't defined, the last MySQL connection is used.

Więc wychodzi na to, że bierze ostatnio używane połączenie, jeśli nie jest zdefiniowane...
Go to the top of the page
+Quote Post
sq6aah
post
Post #10





Grupa: Zarejestrowani
Postów: 71
Pomógł: 0
Dołączył: 12.10.2009

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


Albo otworzyć dwa połączenia, jedno poprzez klase a drugie normalnie. Tylko to pewnie obniży wydajność.
Szkoda że mysql_real_escape_string() nie działa przy mysqli_connect(), ponieważ osobiście wolę ten sposób.
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: 24.08.2025 - 19:58