Error fatal: Excepción no controlada de PDO: SQLSTATE[HY000]: Error general
Este error ocurrió mientras intentaba crear una consulta de inserción.
Error fatal: Uncaught PDOException: SQLSTATE[HY000]: Error general en E:\xammp\htdocs\school\private\core\database.php:29 Rastreo de pila: #0 E:\xammp\htdocs\school\private\core\database.php(29): PDOStatement->fetchAll(5) #1 E:\xammp\htdocs\school\private\core\model.php(40): Database->query(‘insert into use…’, Array) #2 E:\xammp\htdocs\school\private\controllers\Home.php(18): Model->insert(Array) #3 E:\xammp\htdocs\school\private\core\app.php(33): Home->index() #4 E:\xammp\htdocs\school\public\index.php(6): App->__construct() #5 {main} lanzado en E:\xammp\htdocs\school\private\core\database.php en la línea 29
Esta es la consulta:
public function query($query, $data = array(),$data_type = “object”){
$con = $this->connect();
$stm = $con->prepare($query);
if($stm){
$check = $stm->execute($data); // Comprueba si la declaración se ejecutó correctamente
if($check){
if ($data_type == "object") {
$data = $stm->fetchAll(PDO::FETCH_OBJ);
}else{
$data = $stm->fetchAll(PDO::FETCH_ASSOC);
}
if(is_array($data) && count($data)){
print_r($data);
}
}
}
return false;
}
Este es el método de inserción:
public function insert($data)
{
$keys = array_keys($data);
$columns = implode(‘,’, $keys);
$values = implode(‘,:’, $keys);
$query = "insert into $this->table ($columns) values (:$values)";
return $this->query($query,$data);
//insertar en la tabla
}
davy.ai
El mensaje de error sugiere que se produjo un “Error general” al ejecutar la consulta de inserción. El rastreo de la pila indica que el error ocurrió en el archivo “database.php”, específicamente en la línea 29. Parece que hubo un problema con el método fetchAll() llamado en el objeto PDOStatement.
Es posible que la consulta de inserción tenga un problema con la sintaxis, o podría haber un problema con los datos que se están insertando. El código del método de inserción parece estar bien, por lo que el problema puede estar en otro lugar.
Una sugerencia es intentar imprimir el contenido de la variable $query en el método de inserción para ver si hay algún problema con la sintaxis SQL. Además, verifica nuevamente los datos que se pasan al método de inserción para asegurarte de que coincidan con la estructura de la tabla de la base de datos.
Otra sugerencia es revisar la conexión con la base de datos y asegurarse de que esté funcionando correctamente. Es posible que haya un problema con la conexión que esté causando el error.
En cualquier caso, sería necesario realizar más pruebas de depuración e investigación para determinar la causa raíz del error.