2013-09-02 16 views
6

Veritabanı olarak SQL server2008 kullanıyorum ve MSSQL Server 2008'da saklı yordamı yazdım. MSSQL Server 2008'da iyi çalışıyor. Bu Depolanmış Prosedürü codeigniter'dan aramak istiyorum.Sqlsrv Sürücüsü Kullanarak Saklanan Yordamdan Veri Al

phpService.php:

public function Login($username, $password) 
{ 
    $this->load->model('Apimodel'); 
    $result = $this->Apimodel->Login($username,$password); 

    header('Content-type: application/json'); 
    echo json_encode(array('LoginResponce'=>$result)); 
} 

apimodel.php:

function Login($UserName,$Password) 
{    
    $this->db = $this->GetDB(); 
    $query = $this->db->query("EXEC Login"); 

    return $query->result(); 

} 

Ben parametre olmadan Prosedürü yürütün o Çalışma İnce Bunun için bu gibi bir kod yazdım

function Login($UserName,$Password) 
    {    
     $this->db = $this->GetDB(); 
     $query = $this->db->query("EXEC Login '$UserName','$Password'"); 

     return $query->result(); 

    } 
Ben parametresi ile Prosedürü çalıştırma,

Ama, bu

çalışmıyor

kimse burada ne eksik söyleyebilir misiniz? Eğer CodeIgniter'daki kullanıyorsanız lütfen önceden tüm

+0

bu http://ellislab.com/forums/viewthread/202515/ –

+0

@Deepanshu yardımcı olabilir: Ben bu bağlantıdan almıyorum. bana açıklayabilir misin ? –

+1

Bağımlı parametreler kullanmayı denediniz mi? $ this-> db-> query ("Exec Login?,?", array ($ UserName, $ Password)); 'Parolada bir alıntı karakteri varsa, hataları engeller. – mcrumley

cevap

0

oh .............. ben ans

PhpService.php var uzun RND sonra:

public function Login($username, $password) 
    { 

     $this->load->model('Apimodel'); 
     $result = $this->Apimodel->Login($username,$password); 

     header('Content-type: application/json'); 
     echo json_encode(array('LoginResponce'=>$result)); 

    } 

apimodel.php:

function Login($username, $password) 
    { 
     $this->db = $this->GetDB(); 
     $query = $this->db->query("EXEC Login $username,$password"); 

     return $query->result(); 
    } 
1

İlk içinde

sayesinde, ben MSSQL sunucusuna bağlanmak için onların veritabanı sınıfını kullanmanızı öneririz. Eğer yapılandırma ayarı gerçekleştirdikten sonra, böyle bir işlevi de olabilir $this->load->database('default');

: Eğer veritabanına otomatik bağlantı değilseniz http://ellislab.com/codeigniter/user-guide/database/configuration.html

böyle bağlayabilirsiniz: Burada bu konuda daha fazla bilgi bulabilirsiniz modeliniz:

function login($username, $password) { 
    return $this->db->query("EXEC spLogin '$username', '$password'")->result(); 
} 
+0

Önemli hata: Bir nesne üzerinde bir üye işlev sonucu() çağrısı 87. satırda $ apimodel.php = $ query = $ this-> db-> query ("EXEC Common_Login ($ username, $ password)"); –

+0

Hala CI'nin veritabanı sınıflarını kullanmıyorsunuz gibi görünüyor. Üzerinde ve modellerde okuduğunuzdan emin olun: http://ellislab.com/codeigniter/user-guide/database/index.html ve http://ellislab.com/codeigniter/user-guide/general/models.html. Ve dizelerinizi tek tırnak içine aldığınızdan emin olun. – mcryan

+0

Parametre olmadan Prosedürü çalıştırdığımda, iyi çalışıyor ama parametresi düzgün çalışmıyor –

İlgili konular