es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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

}

Tags:  , , ,

Answer

  1. Avatar for 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.

Comments are closed.