Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> mysql_connect nadpisuje?
markonix
post
Post #1





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

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


mysql_connect zaskoczyło mnie dziwnym zachowaniem.

Piszę sobie dodatek do aplikacji, w której utworzone jest połączenie za pomocą wspomnianej funkcji.
Nie zwracany jest identyfikator tzn nie przypisywany do żadnej zmiennej.

Następnie chciałbym na chwilkę połączyć się z inną bazą na tym samym hoście:
  1. $newConnect = mysql_connect('localhost', 'nazwa', 'haslo');

I co się okazuje? Połączenie główne jest zastępowane.
Wszystkie operacje na bazie jakie będę wykonywał będą na odbywały się na nowym linku, a stary nie istnieje.
Zamknięcie połączenia za pomocą mysql_connect($newConnect) powoduje przy zapytaniach łączenie się z bazą za pomocą apache @ localhost czyli jakby żadne połączenie nie było ustanowione.
Próbowałem 4 argument ustawiać na TRUE, FALSE ale to nic nie zmienia.
SQL Safe Mode jest na OFF.

Dlaczego tak się dzieje? Jak to rozwiązać?
Jest to dosyć poważny problem dla mnie, a kodu aplikacji właściwej nie mogę modyfikować.

Ten post edytował markonix 24.06.2011, 20:56:27
Go to the top of the page
+Quote Post
Fifi209
post
Post #2





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


nie wystarczy skoro jesteś już połączony?
Go to the top of the page
+Quote Post
markonix
post
Post #3





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

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


Inny użytkownik, inne hasło, tylko ten sam host.
Go to the top of the page
+Quote Post
mat-bi
post
Post #4





Grupa: Zarejestrowani
Postów: 690
Pomógł: 92
Dołączył: 6.02.2011

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


1. we wszystkich mysql_query etc. podajesz drugi argument, mysql_connect
2. do drugiego połączenia stosujesz np. PDO
Go to the top of the page
+Quote Post
markonix
post
Post #5





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

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


O PDO myślałem, ale chciałem uniknąć tutaj bo te drugie połączenie potrzebne jest do zaledwie dwóch zapytań.
Pierwszego punktu nie rozumiem. Jeśli chodzi Ci o link do połączenia w mysql_query to nie ma tu znaczenia, samo wywołanie mysql_connect "zabija" połączenie główne.
Go to the top of the page
+Quote Post
mat-bi
post
Post #6





Grupa: Zarejestrowani
Postów: 690
Pomógł: 92
Dołączył: 6.02.2011

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


ech - manual, drugi argument mysql_query, tylko, jak widzę, nie możesz ruszyć podstaw witryny
Go to the top of the page
+Quote Post
markonix
post
Post #7





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

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


Ale o czym Ty mówisz, wiem, że mogę się odwołać po linku do konkretnego połączenia ale mam dwa połączenia:
GŁÓWNE, bez identyfikatora.
DODATKOWE, z identyfikatorem.

Utworzenie tego dodatkowego, nadpisuje/zabija połączenie GŁÓWNE.

W moim rozumowaniu mysql_query bez drugiego argumentu działa na głównym, z argumentem działa na dodatkowym ale tak właśnie nie jest.
Go to the top of the page
+Quote Post
Crozin
post
Post #8





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


Cytat
W moim rozumowaniu mysql_query bez drugiego argumentu działa na głównym, z argumentem działa na dodatkowym ale tak właśnie nie jest.
A nie lepiej zamiast samemu próbować dojść do tego jak to działa skorzystać z manuala? Jak byk napisane:
Cytat
The MySQL connection. If the link identifier is not specified, the last link opened by mysql_connect() is assumed. [...]
Go to the top of the page
+Quote Post
markonix
post
Post #9





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

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


Jak zwykle najprostsze rozwiązanie jest najlepsze, po prostu w takim wypadku wystarczy dać połączenie z bazą DODATKOWĄ na samym początku strony przez includem połączeń, funkcji itp. Problem rozwiązany.
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: 25.08.2025 - 02:40