2017-06-04 7 views
0

私には問題があります。コードイグナイタを使用しています これは私のコードです。mysqli_insert_id()は、CodeIgniterで指定された1つのパラメータ0を返します。

私のモデル(M_register.php)

class M_register extends CI_Model { 

    function __construct() 
    { 
     parent::__construct(); 
    } 

    function add_account($data) 
    { 
     $this->load->database(); 
     $this->db->insert('login',$data);   
     **return mysqli_insert_id();** 
    } 

    function changeActiveState($key) 
    { 
     $this->load->database(); 
     $data = array(
      'active' => 1 
     ); 

     $this->db->where('md5(id)', $key); 
     $this->db->update('login', $data); 

     return true; 
    } 
} 

そして、これは、部分的コントローラーのコード $データ=配列(

 'username' => $username, 
     'password' => $password, 
     'nama' => $nama, 
     'email' => $email, 
     'active' => 0 
    ); 
    $this->load->model('m_register'); 
    **$id = $this->m_register->add_account($data);**   
    $encrypted_id = md5($id); 
enter code here 

であり、この私のエラー:

enter image description here

答えて

1

としてデータベース接続変数を渡しあなたはCodeIgniterのを使用しているので、あなただけのデータベース操作を実行するためにCodeIgniterの機能を使用する場合それが良いだろう。

間違いなくあなたはmysqli_insert_id(db_connection_object) を使用して結果を取得しますが、あなたはCodeIgniterの

$this->db->insert_id(); 
3

エラーメッセージがクリアされています: mysqli_insert_id()は、1つのパラメータ0を指定しています。

パラメータで接続する必要があります。

$con = mysqli_connect("localhost","my_user","my_password","my_db"); 

mysqli_query($con,"INSERT INTO Persons (FirstName,LastName,Age) VALUES ('Glenn','Quagmire',33)"); 

// Here the call to "mysqli_insert_id" takes the output of "mysqli_connect" as parameter 
echo "New record has id: " . mysqli_insert_id($con); 

mysqli_close($con); 

出典:たとえばhttps://www.w3schools.com/php/func_mysqli_insert_id.asp

私はあなたの接続をやっているところあなたのコードでは知っているが、$this->load->database()へのお電話は、接続リソースを返さないことをチェックしません。

+0

笑い....グレン泥沼の作り付けの機能を使用する場合、それは良いだろう... –

1

パラメータ

$query = $this->db->insert('login',$data); 
return mysqli_insert_id($dbconnection); 
関連する問題