2017-01-11 6 views
0

Ich versuche, eine neue Zeile mit PDO und Codeigniter in meine Datenbank einzufügen.PDO/Codeigniter Fehler mit Vorbereitung

Hier ist meine Funktion:

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

ich aus irgendeinem Grund diese Störung erhalte:

'Call to undefined Methode CI_DB_pdo_mysql_driver :: prepare()' (in der ersten Zeile der Funktion). (Ich bin mir nicht sicher, ob es ein Problem mit der prepare-Methode speziell ist, weil ich $ this-> db-> query() -Methode in meinen anderen Funktionen verwenden kann).

Ich werde auch die Konfiguration meiner database.php Datei von codeigniter anhängen.

$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

aktivieren PDO-Erweiterung zuerst von PHP-Ini-Datei. –

+0

überprüfen Sie diese http://stackoverflow.com/questions/19114403/fatal-error-call-to-undefined-method-ci-db-pdo-driverwhere-in –

+0

@prakashtank Wenn Sie einen Blick auf meine Konfigurationsdatei, Sie kann sehen, dass ich beide Möglichkeiten richtig eingestellt habe. –

Antwort

0

Sie sollten statt PDO aktiven Datensatz werden:

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

wäre in etwa so gehen:

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

An:

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

Verwandte Themen