Al mudar el sistema de gestión que acabo de hacer a un servidor Xampp, me devuelve el siguiente error al hacer un INSERT INTO
Cita: Warning: PDO::__construct(): MySQL server has gone away in C:\xampp\htdocs\tiendainformatica\core\connectdb.p hp on line 22
Warning: PDO::__construct(): Error while reading greeting packet. PID=3508 in C:\xampp\htdocs\tiendainformatica\core\connectdb.p hp on line 22
Warning: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000] [2006] MySQL server has gone away' in C:\xampp\htdocs\tiendainformatica\core\connectdb.p hp:22 Stack trace: #0 C:\xampp\htdocs\tiendainformatica\core\connectdb.p hp(22): PDO->__construct('mysql:host=loca...', 'root', '') #1 C:\xampp\htdocs\tiendainformatica\controller\custo mer.php(94): core\ConnectDb->__construct() #2 C:\xampp\htdocs\tiendainformatica\module\home.php( 70): controller\Customer->create(Array) #3 C:\xampp\htdocs\tiendainformatica\controller\modul e.php(17): module\Home->create(Array) #4 C:\xampp\htdocs\tiendainformatica\index.php(42): controller\Module->invoke(Array) #5 {main} thrown in C:\xampp\htdocs\tiendainformatica\core\connectdb.p hp on line 22
Fatal error: Maximum execution time of 30 seconds exceeded in C:\xampp\htdocs\tiendainformatica\core\connectdb.p hp on line 22
Este es el archivo
Código PHP:
Ver original<?php
/* Connect to MySQL BD */
namespace core;
class ConnectDb {
/*
Datos de conexion
* */
private $dsn = 'mysql:host=localhost; port=80; dbname=tiendainformatica; charset=utf8';
private $username = 'root';
private $passwd = '';
/*
objeto de pdo
* */
private $pdo;
public function __construct() {
//esta es la linea 22//
$this->pdo = new \PDO($this->dsn, $this->username, $this->passwd);
}
/*
Read from DataBase
* */
public function read($statement) {
$result = $this->pdo->prepare($statement);
$result->execute();
return $result->fetchAll(\PDO::FETCH_ASSOC);
}
/*
Create into DataBase
* */
public function create($statement, $input_parameters){
// statement es la consulta e input_parameters son los argumentos de la consulta
$prepare = $this->pdo->prepare($statement);
$prepare->execute($input_parameters);
//sirve para extraer el id de la ultima fila insertada y utilizarlo en otra consulta
$prepare2 = $this->pdo->prepare('SELECT LAST_INSERT_ID()');
$prepare2->execute();
return $prepare2->fetchAll(\PDO::FETCH_ASSOC);
}
/*
Update into DataBase
* */
public function update($statement, $input_parameters){
// statement es la consulta e input_parameters son los argumentos de la consulta
$prepare = $this->pdo->prepare($statement);
return $prepare->execute($input_parameters);
}
/*
Delete from DataBase
* */
public function delete($statement, $input_parameters){
$prepare = $this->pdo->prepare($statement);
return $prepare->execute($input_parameters);
}
}
?>
Los datos de conexión son correctos y en LAMP todo funciona perfectamente.
¿Alguien puede ayudarme a entender el error y encontrar una solución?