![]() |
![]() ![]() |
![]() |
![]()
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 } ?> |
|
|
![]()
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! |
|
|
![]()
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... |
|
|
![]()
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! |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 365 Pomógł: 8 Dołączył: 16.12.2008 Ostrzeżenie: (0%) ![]() ![]() |
Zastosuj wzorzec projetowy Adapter.
|
|
|
![]()
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 |
|
|
![]()
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ć.
-------------------- |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 22:51 |