6

私はSQL server2008データベースとして使用しており、ストアドプロシージャをMSSQL Server 2008. で正常に動作していMSSQL Server 2008ます。からこのストアド プロシージャを呼び出したいcodeigniter。そのために、次のようなコードを書きました。

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();

}

パラメータなしでプロシージャを実行すると、正常に動作します

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

        return $query->result();

    }

しかし、パラメータを指定してプロシージャを実行すると機能しません

ここで何が欠けているのか教えてもらえますか?

前もって感謝します

4

2 に答える 2

1

まず、Codeigniter を使用している場合は、そのデータベース クラスを使用して MSSQL Server に接続することをお勧めします。詳細については、こちらをご覧ください: http://ellislab.com/codeigniter/user-guide/database/configuration.html

データベースに自動接続していない場合は、次のように接続できます。$this->load->database('default');

構成のセットアップが完了したら、モデルに次のような関数を含めることができます。

function login($username, $password) {
    return $this->db->query("EXEC spLogin '$username', '$password'")->result();
}
于 2013-09-03T21:39:01.323 に答える
0

ああ…………長いRNDの後、私は答えを得ました

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 $username,$password");

        return $query->result();
    }
于 2013-09-05T04:08:46.450 に答える