Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]Problem z zapytaniem Mysql z uzyciem LIKE
-pomoc-
post
Post #1





Goście







Witam,

mam problem z zapytaniem Mysql, co dla mnie jest kompletnie nie logiczne i nie umiem sobie z tym poradzic.

Otoz mam takie zapytanie:

  1. $sql = "SHOW TABLES FROM $showDB LIKE 'cms_%'";
  2. $result = mysql_query($sql,$link);
  3.  
  4. IF (!$result) {
  5. echo "DB Error, could not list tables\n";
  6. echo 'MySQL Error: ' . mysql_error();
  7. exit;
  8. }


To zapytanie zwraca mi wszystkie tabele z bazy $showDB z przedrostkiem cms. Wszystko jest ok. Tutaj zmienna $showDB to np. bazanr1.

Teraz problem pojawia sie, jesli nazwa bazy zawiera w sobie "-" czyli jesli $showDB ma wartosc baza-nr1 to zapytanie generuje blad.

DB Error, could not list tables MySQL Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-nr1 LIKE 'cms_%'' at line 1

Prosze o pomoc, bo juz wszystkiego probowalem i zmienic ' na " i inne cuda, ktore przyszly mi do glowy, szukalem w helpie na mysql i nic nie znalazle, ten blad jest smieszny po prostu.

Pozdrawiam
Michal
Go to the top of the page
+Quote Post
d3ut3r
post
Post #2





Grupa: Zarejestrowani
Postów: 709
Pomógł: 176
Dołączył: 24.10.2010

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


powinno być:

  1. $sql = "SHOW TABLES FROM `$showDB` LIKE 'cms_%'";


--------------------
http://d3ut3r.wordpress.com/ | mysql_* jest przestarzałe UŻYWAJ PDO!
Go to the top of the page
+Quote Post
-pomoc-
post
Post #3





Goście







WOW!

Dziekuje Ci bardzo.
Czy mozesz mi wytlumaczyc skad tak, dlaczego ?
Powiem szczerze, ze jeszcze nigdy nie uzywalem tego apostrofa w PHP, chyba ze w plikach .sql jak robie export z bazy.
Byc moze wlasnie dlatego pisze na przedszkole.

Jeszcze raz dzieki.
Go to the top of the page
+Quote Post
d3ut3r
post
Post #4





Grupa: Zarejestrowani
Postów: 709
Pomógł: 176
Dołączył: 24.10.2010

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


znak - to operator matematyczny w mysql np:

  1. SELECT name FROM users WHERE id=300-298


zwróci pole name użytkownika o id 2. Dlatego należy unikać takich nazw żeby nie robić niepotrzebnie bałaganu.


--------------------
http://d3ut3r.wordpress.com/ | mysql_* jest przestarzałe UŻYWAJ PDO!
Go to the top of the page
+Quote Post
-pomoc-
post
Post #5





Goście







"Acute accent" - tak sie nazywa ten apostrof, a po Polsku akutowy akcent - smieszna nazwa :-)

Tak wlasnie, ale nadszedl dzien sadu ostatecznego dla mojego zapytania, nigdy nie uzywam takich nazw dla baz danych, ale tym razem nie mialem wyjscia i hosting, na ktorym pracuje aktualnie, domyslnie zalozyl taka baze, bez mozliwosci zmiany jej nazwy (z myslinkiem).

Ok, dziekuje za wytlumaczenie, dowiedzialem sie czegos nowego. Dzieki wielkie!
Powód edycji: [thek]: Inna polska nazwa to "odwrócony" lub "odwrotny" apostrof ;)
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: 21.08.2025 - 23:35