Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> PHP+MySQL - jak przerobic na komunikacje z MSSQL
Kaayl
post
Post #1





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 22.03.2007

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


Witam
Czy istnieje odpowiednik funkcji mysqli dla bazy mssql?
Mam skrypt robiacy sugestie dla pola input przystosowany do pobierania slownika z bazy mysql problem w tym ze musze go przerobic tak by wspolpracowal z baza mssql zamiast mysql, z czym nie ukrywam, mam spory problem i prosze o pomoc.

Kod
<?php
// ładuje moduł obsługi błędów
require_once('error_handler.php');
// ładuje plik konfoguracyjny
require_once('config.php');
// klasa, której zadaniem jest obsługa funkcji podpowiadania i autouzupełniania po stronie serwera
class Suggest
{
  // obsługa bazy danych
  private $mMysqli;
  // konstruktor, otwiera połączenie z bazą
  function __construct()
  {  
    // łączy z bazą
    $this->mMysqli = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_DATABASE);
  }
  // destruktor, zamyka połączenie z bazą
  function __destruct()
  {
    $this->mMysqli->close();
  }
  // zwraca nazwy wszystkich funkcji, które zaczynają się od wartości $keyword
  public function getSuggestions($keyword)
  {
    // obcina łańcuch słowa kluczowego
    $patterns = array('/\s+/', '/"+/', '/%+/');
    $replace = array('');
    $keyword = preg_replace($patterns, $replace, $keyword);
    // tworzy zapytanie SQL, które pobiera pasujące nazwy funkcji z bazy
    if($keyword != '')
      $query = 'SELECT name ' . 'FROM suggest ' .  'WHERE name LIKE "' .
        $keyword . '%"';
    // jeśli słowo kluczowe nie zostało podane, nie zwraca nic
    else
      $query = 'SELECT name ' . 'FROM suggest ' . 'WHERE name=""';
    // wykonuje zapytanie SQL
    $result = $this->mMysqli->query($query);
    // tworzy odpowiedź w formacie XML
    $output = '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>';
    $output .= '<response>';    
    // jeśli są wyniki, przegląda je w pętli i dodaje do danych wyjściowych
    if($result->num_rows)
      while ($row = $result->fetch_array(MYSQLI_ASSOC))
        $output .= '<name>' . $row['name'] . '</name>';
    // zamyka strumień wyjściowy
    $result->close();
    // dodaje znacznik kończący plik
    $output .= '</response>';  
    // zwraca wyniki
    return $output;  
  }
//koniec klasy Suggest
}
?>
Go to the top of the page
+Quote Post
erix
post
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Zostaje Ci tylko PDO.


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

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
Kaayl
post
Post #3





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 22.03.2007

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


Ok. Poczytam o tym i sprobuje dolozyc ta klase. Dzieki za podpowiedz. Jutro napisze czy mi sie udalo lub znowu Cie poprosze o pomoc :]

Lipa narazie. Nie wiem jak sie za to zabrac. Podpowiedzcie cos wiecej...
Go to the top of the page
+Quote Post
erix
post
Post #4





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Pokaż jak próbowałeś.


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

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
gcdreak
post
Post #5





Grupa: Zarejestrowani
Postów: 365
Pomógł: 8
Dołączył: 16.12.2008

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


Zastosuj wzorzec projetowy Adapter.
Go to the top of the page
+Quote Post
fander
post
Post #6





Grupa: Zarejestrowani
Postów: 231
Pomógł: 22
Dołączył: 6.10.2008

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


function __construct()
{
// łączy z bazą
$this->mMysqli = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_DATABASE);
}

Użyj PDO

stwórz w klasie zamiast new mysqli(host,user,pass,database) new PDO(dsn,user,pass)

Docelowo to powinno się robić tak że tworzysz interfejs DbConnection w którym masz wszystkie potrzebne metody a następnie klasy z odpowiednimi atrybutami.

Ten post edytował fander 2.07.2009, 11:41:02
Go to the top of the page
+Quote Post
viking
post
Post #7





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

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


http://www.microsoft.com/Sqlserver/2005/en...php-driver.aspx może się przydać.


--------------------
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 Aktualny czas: 21.08.2025 - 22:51