Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MySQL]Funkcja ucina query, Nie da się tego inaczej nazwać.
HgReed
post 6.12.2011, 13:41:14
Post #1





Grupa: Zarejestrowani
Postów: 59
Pomógł: 0
Dołączył: 13.11.2011

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


Witam.
Mam swoją funkcję. Ma ona "rozbroić" otrzymane dane, i zwrócić mysqli_num_rows. Niestety - jedyne co zwraca, to błąd "Notice: Trying to get property of non-object in...".
Kod funckji:
(wprowadzone dane :
$what = login, password
$with = admin, haslo_admina_md5)
  1. function numRowsDB($what, $with)
  2. {
  3. $query = '"SELECT ';
  4. if(is_array($with))
  5. {
  6. foreach($what as $what___x1)
  7. {
  8. $query .= '`'.$what___x1.'`, ';
  9. }
  10. $query = substr($query, 0, -2);
  11. }
  12. else
  13. {
  14. $query .= '`'.$what.'`';
  15. }
  16. $query .= ' FROM `'.$dataBase.'` WHERE ';
  17. if(is_array($what) && is_array($with))
  18. {
  19. $queryList = array_combine($what, $with);
  20. foreach($queryList as $what___x1 => $with___x1)
  21. {
  22. $query .= '`'.$what___x1.'` = \''.$with___x1.'\' AND ';
  23. }
  24. $query = substr($query, 0, -5);
  25. }
  26. else
  27. {
  28. $query .= '`'.$what.'` = \''.$with.'\'';
  29. }
  30. $query .= '"'; //echo $query daje pełne zapytanie do bazy : "SELECT `login`, `password` FROM `users` WHERE `login` = 'admin' AND `password` = 'haslo_admina_md5'"
  31. $query = $connection->query($query); //po zrobieniu or die($connection->error); daje : "SELECT `login`, `password` FROM `users` WHERE `login` = 'admin' AND `password`
  32. return $query->num_rows; //ta linia zwraca błąd
  33. }

I nie mam ŻADNEGO pomysłu dlaczego to ucina mi query. Szukałem w googlach - nikomu to się nie zdażało (szukam już ponad godzinę i nic).
Czy ktoś ma pomysł dlaczego tak się dzieje?

Ten post edytował HgReed 6.12.2011, 13:41:37
Go to the top of the page
+Quote Post
Uriziel01
post 6.12.2011, 14:52:22
Post #2





Grupa: Zarejestrowani
Postów: 307
Pomógł: 37
Dołączył: 9.11.2010
Skąd: Zielona Góra

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


Witam.
Usuń cudzysłów z linii (przed SELECT):
  1. $query = '"SELECT ';

oraz całą linię:
  1. $query .= '"';


Voila, wszystko działa smile.gif A tak na przyszłość, nie ma potrzeby dodatkowego quotowania tych zapytań, jest to pewien pseudo język i jego składnia nie uwzględnia takich zabiegów.
Go to the top of the page
+Quote Post
HgReed
post 6.12.2011, 14:54:47
Post #3





Grupa: Zarejestrowani
Postów: 59
Pomógł: 0
Dołączył: 13.11.2011

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


Powiem Ci... To była ostatnia rzecz, której się spodziewałem tongue.gif
Dzięki. Wielkie.
Pozdro!
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 Wersja Lo-Fi Aktualny czas: 24.06.2025 - 18:56