2017-09-23 1 views
1

Ich erstelle eine dynamische Funktion zum Einfügen von Daten in die Datenbank mit PHP-PDO.Warum bekomme ich die Anzahl der gebundenen Variablen stimmt nicht mit der Anzahl der Token Fehlermeldung überein?

Hier ist die Funktion in der Database Klasse.

public function insert ($table, $feilds = array()) { 

    $key = array_keys($feilds); 
    $column = implode(',', $key); 

    $ques = array(); 

    foreach ($feilds as $value) { 
     $ques[] = " ?"; 
    } 

    $ques = implode(', ', $ques); 

    $stmt = $this->_pdo->prepare("INSERT INTO $table($column) VALUES ($ques)"); 

    $x=1;  
    foreach ($feilds as $key => $value) { 
     $stmt->bindParam($x, $var); 
     $var = $value; 
     $stmt->execute();   
     $x++; 
    }  
} 

Ich bin Einfügen von Daten wie folgt aus:

$data = array(
    'b_title' => 'My blog title', 
    'b_des'  => 'My blog description', 
); 
$database->insert('blog', $data); 

Aber wenn ich diese Abfrage ausführen es sagt

Ungültige Parameternummer: Anzahl der gebundenen Variablen entspricht nicht Anzahl von Token

Ich verstehe nicht wo Die gebundene Variable und das Token werden nicht abgeglichen! Wie kann ich es lösen?

Danke.

Antwort

0

$stmt->execute(); außerhalb des foreach

+0

OH gehen sollte, ich bin blind :( –

+0

es passiert jedem: P – thelmuxkriovar

Verwandte Themen