Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> połączenie i wykonywanie zapytań mssql na windowsie i ubuntu
qoonieczko
post 8.02.2016, 12:28:42
Post #1





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 30.07.2013

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


Witam,

Czy zna ktoś jakiś sposób, żeby można było łączyć się, wykonywać zapytania w kodzie itd. w identyczny lub chociaż bardzo podobny sposób na windowsie i na linuxie(ubuntu)? Wychodziłem z założenia, że na win będę korzystał z biblioteki sqlsrv, a na ubuntu z dblib i wtedy różnica byłaby w jednej funkcji, w jednym pliku:
na win:
$dsn = "sqlsrv:Server=10.1.1.25\\instancja;Database=baza";
na ubuntu:
$dsn = "dblib:Server=10.1.1.25\\instancja;Database=baza";

To nawet działało, ale jak przeniosłem aplikację z win na ubuntu to okazało się, że dblib resetuje fetch'a, który wyświetla coś z bazy jeśli wewnątrz jest jakiś inny fetch. Dokładnie problem jest opisany tutaj:
https://bugs.php.net/bug.php?id=65945

Raczej tego nie obejdę wiec szukam innego sposobu. Ogólnie chce robić sobie na lokalnym serwerze na windowsie, bo mi tak wygodniej i szybciej i potem gotowca przerzucić na serwer ubuntu. Potrzebuję sposobu, żeby w trakcie przerzucania nie wymagał wielu zmian, a najlepiej żadnych. Ma ktoś jakiś pomysł?
Go to the top of the page
+Quote Post
nospor
post 8.02.2016, 12:46:00
Post #2





Grupa: Moderatorzy
Postów: 36 440
Pomógł: 6290
Dołączył: 27.12.2004




Podalem juz ci pomysl - napisz inaczej ten kod.
Sam przyznajesz, ze ten blad jest nie do obejscia, wiec musisz poprawic ten kod.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
qoonieczko
post 8.02.2016, 12:56:04
Post #3





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 30.07.2013

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


No, ale liczę, że może jest jakiś inny sposób:) Nie podoba mi się perspektywa ładowania wszystkiego do tablic, wygodnie mi się tak pisze i wolałbym raz zmienić sposoby połączenia i wywoływania zapytań, ale żebym mógł sobie robić podzapytania w pętli innego zapytania. Oporny jestem- wiem... Pewnie jak nic nie znajdę to będę musiał robić tak jak pisałeś, ale będzie to dla mnie trudne, bo będę musiał zmienić nawyki:P
Go to the top of the page
+Quote Post
nospor
post 8.02.2016, 13:05:26
Post #4





Grupa: Moderatorzy
Postów: 36 440
Pomógł: 6290
Dołączył: 27.12.2004




Cytat
bo będę musiał zmienić nawyk
Tak czy siak wypadaloby zmienic nawyki, bo kod co tam strzeliles to przyklad tego jak nie nalezy pisac... Pisalem ci juz, ze to sie robi jednym zapytaniem przy pomocy LEFT JOIN a nie zapetlaniem zapytan. zapetlanie zapytan to najgorsze na co mogles wpasc.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
qoonieczko
post 8.02.2016, 13:26:18
Post #5





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 30.07.2013

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


To był przykład napisany na szybko, żeby uświadomić na czym polega problem. Czasami ciężko jest nie zrobić zapytania w zapytaniu. Na takiej samej zasadzie działają zazwyczaj procedury SQL'owe. Najpierw masz cursor, potem jedziesz po tym i wykonujesz różne działania, zapytania. Zapytań wykonuje się dokładnie tyle samo co w przypadku użycia tablicy. Co więcej masz w tym przypadku dodatkowe działania, bo najpierw musisz wrzucić dane do tablicy, a potem foreach, żeby na niej zadziałać. A tak to wszystko robię podczas fetchowania. Może się mylę, ale póki co takie jest moje rozumowanie:) Rozumiem, że Tobie bardziej chodzi o to, że oba sposoby są złe i najlepszy byłby left join, ale mam takie zagwozdki, że nie da rady wyciągnąć tego jednym zapytaniem.
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: 28.03.2024 - 20:40