Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Jak połączyć się z bazą danych, która zawiera w nazwie średniki przez PDO
mad/
post
Post #1





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 7.10.2009

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


Niestety, nie mogę się połączyć z bazą danych o nazwie 't;' za pomocą PDO, poniższy kod nie działa:
<?
$pdo = new PDO('mysql:host=localhost;dbname=t\\;', 'user', 'pass');
?>
Jakie jest poprawne rozwiązanie?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
230005
post
Post #2





Grupa: Zarejestrowani
Postów: 316
Pomógł: 36
Dołączył: 2.04.2008

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


Jaki błąd zwraca, nikt tu nie jest jasnowidzem / po co po t są dwa slashe?
Go to the top of the page
+Quote Post
jmail
post
Post #3





Grupa: Zarejestrowani
Postów: 352
Pomógł: 53
Dołączył: 10.08.2009

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


a nie prościej zmienić nazwę bazy i wywalić z niej średnik?
Go to the top of the page
+Quote Post
phpion
post
Post #4





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Cytat(jmail @ 7.10.2009, 22:53:51 ) *
a nie prościej zmienić nazwę bazy i wywalić z niej średnik?

A próbowałeś kiedykolwiek zmieniać nazwę bazy w MySQL?

http://dev.mysql.com/doc/refman/5.1/en/rename-database.html
Go to the top of the page
+Quote Post
jmail
post
Post #5





Grupa: Zarejestrowani
Postów: 352
Pomógł: 53
Dołączył: 10.08.2009

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


jasne.

robiłem backup odtwarzałem jako nowa nazwa po czym wywalałem starą bazę tongue.gif
Go to the top of the page
+Quote Post
230005
post
Post #6





Grupa: Zarejestrowani
Postów: 316
Pomógł: 36
Dołączył: 2.04.2008

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


Cytat
a nie prościej zmienić nazwę bazy i wywalić z niej średnik?


Że niby ten średnik na końcu to część nazwy? biggrin.gif Nigdy bym nie pomyślał, że ktoś tak może nazwać bazę biggrin.gif
Go to the top of the page
+Quote Post
mad/
post
Post #7





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 7.10.2009

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


Cytat(230005 @ 7.10.2009, 21:47:58 ) *
Jaki błąd zwraca, nikt tu nie jest jasnowidzem / po co po t są dwa slashe?

Nie twierdzę nawet, że powyższy kod miałby szansę zadziałać, slashe to tylko próba escapeowania średnika, a dwa dlatego, że pojedynczy slash to escaping znaków specjanych, podwójny to wartość slasha.
Co do błędu: bez względu na istnienie jakiejkolwiek bazy lub też nie dostaję błąd nieprawidłowej nazwy, bo dla PDO nazwa bazy to 't\', a średnik to tylko separator. Komunikat błędu (oczywiście wyjatek PDOEexc.):
SQLSTATE[42000] [1102] Incorrect database name 't\'

Cytat(230005 @ 7.10.2009, 22:29:56 ) *
Że niby ten średnik na końcu to część nazwy? biggrin.gif Nigdy bym nie pomyślał, że ktoś tak może nazwać bazę biggrin.gif

Piszę małą klasę ułatwiającą łączenie się z bazą danych i pobieranie odpowiednich danych na podstawie schematu, i nie chcę, żeby ktoś za pomocą średnika zrobił mi coś w stylu PHP-PDO-Injection, a wywalać średników też nie będę, ponieważ zwyczajnie może kogoś najść ochota na nazwanie tak bazy danych i już.

Czy ktoś może zetknął się z tym problemem? Utknąłem właśnie w tym momencie, a muszę połączyć się z bazą danych ze średnikiem w nazwie.

PS. Proponuję przeniesienie tematy do działu bardziej odpowiedniego niż przedszkole, skoro nikt nie zna odpowiedzi.... A przecież przedszkole jest takie łatwe, prawda....?

Ten post edytował mad/ 8.10.2009, 18:22:23
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: 20.08.2025 - 11:20