Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] PHP OO PDO server has gona way

Estas en el tema de PDO server has gona way en el foro de PHP en Foros del Web. 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: ...
  #1 (permalink)  
Antiguo 10/03/2015, 11:23
Avatar de guardarmicorreo  
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 11 años, 5 meses
Puntos: 84
PDO server has gona way

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
  1. <?php
  2.  
  3. /* Connect to MySQL BD */
  4.  
  5. namespace core;
  6.  
  7. class ConnectDb {
  8.     /*
  9.       Datos de conexion
  10.      *      */
  11.  
  12.     private $dsn = 'mysql:host=localhost; port=80; dbname=tiendainformatica; charset=utf8';
  13.     private $username = 'root';
  14.     private $passwd = '';
  15.  
  16.     /*
  17.       objeto de pdo
  18.      *      */
  19.     private $pdo;
  20.  
  21.     public function __construct() {
  22.         //esta es la linea 22//
  23.         $this->pdo = new \PDO($this->dsn, $this->username, $this->passwd);
  24.     }
  25.  
  26.     /*
  27.       Read from DataBase
  28.      *      */
  29.  
  30.     public function read($statement) {
  31.         $result = $this->pdo->prepare($statement);
  32.         $result->execute();
  33.         return $result->fetchAll(\PDO::FETCH_ASSOC);
  34.     }
  35.  
  36.     /*
  37.       Create into DataBase
  38.      *      */
  39.  
  40.     public function create($statement, $input_parameters){
  41.         // statement es la consulta e input_parameters son los argumentos de la consulta
  42.         $prepare = $this->pdo->prepare($statement);
  43.         $prepare->execute($input_parameters);
  44.  
  45.         //sirve para extraer el id de la ultima fila insertada y utilizarlo en otra consulta
  46.         $prepare2 = $this->pdo->prepare('SELECT LAST_INSERT_ID()');
  47.         $prepare2->execute();
  48.         return $prepare2->fetchAll(\PDO::FETCH_ASSOC);
  49.     }
  50.    
  51.     /*
  52.         Update into DataBase
  53.      *      */
  54.    
  55.     public function update($statement, $input_parameters){
  56.         // statement es la consulta e input_parameters son los argumentos de la consulta
  57.         $prepare = $this->pdo->prepare($statement);
  58.         return $prepare->execute($input_parameters);
  59.     }
  60.     /*
  61.         Delete from DataBase
  62.      *      */
  63.     public function delete($statement, $input_parameters){
  64.         $prepare = $this->pdo->prepare($statement);
  65.         return $prepare->execute($input_parameters);
  66.     }
  67.  
  68. }
  69. ?>

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?
__________________
Ayúdame a hacerlo por mi mismo.
  #2 (permalink)  
Antiguo 10/03/2015, 11:52
Avatar de guardarmicorreo  
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 11 años, 5 meses
Puntos: 84
Respuesta: PDO server has gona way

Vale, solucionado. El problema es que el sistema lo hice en Linux (OpenSUSE) y ahí utilizaba el puerto 80, al cambiarlo a Xampp el puerto de la conexión a la base de datos con PDO es 3306, no 80.

Saludos! :D
__________________
Ayúdame a hacerlo por mi mismo.

Etiquetas: mysql, pdo, select, server, sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:27.