Ich füge eine Zeile in die Datenbank ein. Es funktioniert perfekt, aber wenn ich die PDO-Fehlermeldung aktiviere, bekomme ich diesen Fehler. Ich möchte genau wissen, warum dieser Fehler auftritt, damit ich die Fehlerbenachrichtigung während der Entwicklung aktivieren kann. Hier ist mein Code:Brauchen Sie Hilfe, um Fehler zu finden SQLSTATE [HY000]: Allgemeiner Fehler
Aktivieren der Fehler, den ich in meiner DB Klasse setzen
$this->_pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
Datenbankverbindung in meiner Klasse
try {
$this->_pdo = new PDO('mysql:host=' . Config::get('mysql/host') . ';dbname=' . Config::get('mysql/db'), config::get('mysql/username'), config::get('mysql/password'));
$this->_prefix = '';
} catch (PDOException $e) {
die($e->getMessage());
}
Hier wird das Verfahren, in dem ich rufe die Abfrage
public function query($sql, $params = array()) {
$this->_error = false;
if($this->_query = $this->_pdo->prepare($sql)) {
$x=1;
if(count($params)){
foreach($params as $param){
$this->_query->bindValue($x, $param);
$x++;
}
}
if($this->_query->execute()){
$this->_results = $this->_query->fetchAll(PDO::FETCH_OBJ);
$this->_count = $this->_query->rowCount();
} else {
$this->_error= true;
}
}
return $this;
}
Dies ist die Einfügefunktion in meiner DB-Klasse
Dies ist die Funktion in meiner Tour-Klasse, die alle Daten durch Aufruf der Einfügefunktion in der DB speichert.
public function create($fields= array()){
if(!$this->_db->insert("tours", $fields)){
throw new Exception('There was a problem creating Tours.' .print_r($this->_db->error()));
}
}
Der Grund ATTR_ERRMODE zu halten ermöglichen, weil es mir helfen, während meiner Entwicklung zu debuggen und ich habe noch viele Seiten zu entwickeln. Ich habe schon viele ähnliche Fragen besucht, aber sie sind mit Fehlern verbunden. Ich bekomme normalerweise keine Fehler, aber nur, wenn ich dieses Fehler-Messaging-System aktiviert habe, das mir alles im Detail sagt.
Das ist anders als andere Frage, da es mir keinen Fehler gibt, aber es Zeile erfolgreich einfügen, aber wenn ich den Fehlermodus aktivieren, dass es mir einen Fehler gibt. Ein anderer verwende ich dynamische Parameter, also kann Doppelpunkt nicht hinzufügen: um es zu korrigieren. Dieselbe Funktion, die zum Abfragen der Datenbank verwendet wird.
Mögliches Duplikat von [PDO-Fehler: "SQLSTATE \ [HY000 \]: Allgemeiner Fehler" beim Aktualisieren der Datenbank] (http://stackoverflow.com/questions/12979510/pdo-error-sqlstatehy000-general-error-when- update-database) – aynber
Bitte erläutern Sie, was Sie mit duplizieren meinen, es läuft nur einmal. – KamalPanhwar
Sie vermuten, dass diese Frage bereits beantwortet wurde. Klicken Sie auf den Link, um die Frage anzuzeigen, von der sie glauben, dass sie Ihr Problem lösen wird. – Henders