2017-01-11 17 views
0

PDOとcodeigniterを使用してデータベースに新しい行を挿入しようとしています。ここで準備中のPDO/Codeigniterエラー

は私の機能です:

function addStudent($st, $img){ 
     $stat = $this->db->prepare('INSERT INTO students (sName, phone, email, image) VALUES (:sName, :phone, :email, :img)'); 
     $stat->bindParam(':sName', $st['sName']); 
     $stat->bindParam(':phone', $st['phone']); 
     $stat->bindParam(':email', $st['email']); 
     $stat->bindParam(':img', $img); 
     $stat->execute(); 
     return $this->db->insert_id(); 
    } 

私はこのエラーを取得しています何らかの理由:

「未定義のメソッドCI_DB_pdo_mysql_driverに呼び出し::準備()」(関数の最初の行に)。 (他の関数で$ this-> db-> query()メソッドを使用できるので、特に準備メソッドに問題があるかどうかはわかりません)。

私のdatabase.phpファイルの設定もcodeigniterから添付します。

あなたが代わりにPDOのアクティブなレコードを使用する必要があります
$active_group = 'default'; 
$query_builder = TRUE; 

$db['default'] = array(
    'dsn' => 'mysql:host=localhost;dbname=school;charset=utf8', 
    'hostname' => 'localhost', 
    'username' => 'root', 
    'password' => '', 
    'database' => 'school', 
    'dbdriver' => 'pdo', 
    'dbprefix' => '', 
    'pconnect' => FALSE, 
    'db_debug' => TRUE, 
    'cache_on' => FALSE, 
    'cachedir' => '', 
    'char_set' => 'utf8', 
    'dbcollat' => 'utf8_general_ci', 
    'swap_pre' => '', 
    'encrypt' => FALSE, 
    'compress' => FALSE, 
    'stricton' => FALSE, 
    'failover' => array(), 
    'save_queries' => TRUE 
); 
+0

最初にphpのiniファイルからpdo拡張子を有効にします。 –

+0

これを確認してくださいhttp://stackoverflow.com/questions/19114403/fatal-error-call-to-undefined-method-ci-db-pdo-driverwhere-in –

+0

@prakashtank私の設定ファイルを見れば、あなたは両方のオプションが正しく設定されていることがわかります。 –

答えて

0

:へ

$stat = $this->db->prepare('INSERT INTO students (sName, phone, email, image) VALUES (:sName, :phone, :email, :img)'); 

https://www.codeigniter.com/userguide3/database/query_builder.html

はこのような何かを行くだろう)

$this->db->insert('students', array('column_name' => $variable,'column_name' => $variable,'column_name' => $variable,'column_name' => $variable,)。