Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MSSQL] Zmiana PHP, problem z PDO
adi456
post
Post #1





Grupa: Zarejestrowani
Postów: 251
Pomógł: 0
Dołączył: 21.01.2010
Skąd: Nowy Sącz

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


Witam

Zmieniam wersje PHP z 5 na 7 dla starego projektu, problem że kodu jest bardzo dużo muszę dopisać brakujące funkcje, największym problemem na jaki aktualnie natrafiłem to zapytania mssql w pętli innego zapytania, pętla wykonuje się tylko raz ponieważ kolejne zapytanie mssql które jest w pętli wszystko psuje, żeby było jaśniej poniżej funkcje jakie sobie dopisałem dla zachowania kompatybilności

  1. function query_mssql($sql){
  2. try {
  3. $mssql = new PDO ("dblib:host=$server;dbname=$dbname","$username","$pw");
  4. } catch (PDOException $e) {
  5. echo '<font style="color:red;">Błąd MSSQL: ' . $e->getMessage();
  6. }
  7.  
  8. if(!empty($mssql)){
  9. try {
  10. $stmt=$mssql->prepare($sql);
  11. $stmt->execute();
  12. } catch (PDOException $e) {
  13. echo '<font style="color:red;">Błąd mssql: ' . $e->getMessage();
  14.  
  15. }
  16. }
  17. return $stmt;
  18. }
  19.  
  20.  
  21. function mssql_fetch_assoc($co){
  22. return $co->fetch();
  23. };
  24. function mssql_fetch_array($co){
  25. return $co->fetch();
  26. };
  27. function mssql_query($co){
  28. return query_mssql($co);
  29. };
  30. function mssql_num_rows($co){
  31. $ile=count($co->fetchAll());
  32. query_mssql($co->queryString); // bez tego niszczy sql/zmienną query tak samo jak zapytania w pętli
  33. return $ile;
  34. }


zauważyłem że PDO to trochę inna zasada działania, to co przypisuje do zmiennej z mssql_query przepada po kolejnym użyciu tej funkcji da się to obejść?

przykład problemu (wyświetli tylko 1 TowId zamiast 2 ):
  1. $q=mssql_query("SELECT TOP 2 TowId FROM dbo.Towar");
  2. while($r=mssql_fetch_array($q)) {
  3. print_r($r);
  4. $q2=mssql_query("SELECT TOP 2 Skrot FROM dbo.Kontrahent");
  5. while($r2=mssql_fetch_array($q2)) {
  6. print_r($r2);
  7. }
  8. }


w zasadzie to PDO kompletnie nie ma sensu albo czegoś nie rozumiem, bo np jeśli w pętli wykonują się różne operacje i przypadkowo będzie tam gdzieś funkcja i kolejne zapytanie PDO to program będzie działać niepoprawnie? chyba to znak żeby unikać tego jak ognia (IMG:style_emoticons/default/tongue.gif) chyba zacznę przerabiać kod bo nie widzę rozwiązania

Ten post edytował adi456 17.04.2019, 13:37:55
Go to the top of the page
+Quote Post

Posty w temacie


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: 24.08.2025 - 12:40