połączenie i wykonywanie zapytań mssql na windowsie i ubuntu |
połączenie i wykonywanie zapytań mssql na windowsie i ubuntu |
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ł? |
|
|
8.02.2016, 13:26:18
Post
#2
|
|
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.
|
|
|
Wersja Lo-Fi | Aktualny czas: 9.06.2024 - 16:18 |