Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: mysql_connect nadpisuje?
Forum PHP.pl > Forum > PHP
markonix
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ć.
Fifi209
nie wystarczy skoro jesteś już połączony?
markonix
Inny użytkownik, inne hasło, tylko ten sam host.
mat-bi
1. we wszystkich mysql_query etc. podajesz drugi argument, mysql_connect
2. do drugiego połączenia stosujesz np. PDO
markonix
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.
mat-bi
ech - manual, drugi argument mysql_query, tylko, jak widzę, nie możesz ruszyć podstaw witryny
markonix
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.
Crozin
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. [...]
markonix
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.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.