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ł?
Podalem juz ci pomysl - napisz inaczej ten kod.
Sam przyznajesz, ze ten blad jest nie do obejscia, wiec musisz poprawic ten kod.
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
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.
Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)