Ver Mensaje Individual
  #1 (permalink)  
Antiguo 19/09/2015, 06:19
ucip3
 
Fecha de Ingreso: noviembre-2014
Mensajes: 5
Antigüedad: 10 años, 3 meses
Puntos: 0
Exclamación Problemas de conexiones PDO

Buenos días, tengo un problema con las conexiones PDO

Estoy trabajando con servidor local XAMPP en Windows 10 con puerto de Apache 8080.

Tengo la siguiente clase:

<?php
class Conexiones
{
private $conexion;
private $host = 'localhost';
private $usuario = 'root';
private $pass = '';
private $bbdd = 'boda';

public function conectar() {
try {
$this->conexion = new PDO("mysql:host = $this->host;dbname = $bbdd", $this->usuario, $this->pass);
$this->conexion->exec("SET CHARACTER SET utf8");
$this->conexion->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_SILENT );
$this->conexion->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING );
$this->conexion->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
} catch (PDOException $e) {
print "ERROR: ".$e->getMessage();
die();
}
}

public function consulta($consulta, $datos) {
$sql = $this->conexion->prepare($consulta);
$sql->execute($datos);
}

public function desconectar() {
$this->conexion = null;
}

public function __clone() {
trigger_error('La clonación de este objeto no está permitida', E_USER_ERROR);
}
}
?>

La base de datos "boda" está creada, con una tabla "invitados" pero al intentar hacer un insert:

public static function addInvitado($nombre, $novios, $categoria, $tipo, $numPersonas, $asiste = 1) {
$insert = "INSERT INTO invitados (nombre, novios, categoria, tipo, numPersonas, asiste) VALUES (:nombre, :novios, :categoria, :tipo, :numPersonas, :asiste)";

$datos = array('nombre' => $nombre, 'novios' => $novios, 'categoria' => $categoria, 'tipo' => $tipo, 'numPersonas' => $numPersonas, 'asiste' => $asiste);

$conexion = new Conexiones();
$conexion->conectar();
$result = $conexion->consulta($consulta, $datos);
$conexion->desconectar();

return $result;
}

Es cuando al recoger de un formulario los datos, enviarlos por AJAX a un archivo php y ejecutar el método de la clase Invitados.php (esta de arriba) me de vuelve el error de la excepcion PDO: SQLSTATE[3D000]: Invalid catalog name: 1046 No database selected

Que la base de datos no está seleccionada, pero está creada y pasada al PDO como se ve en la clase "Conexiones".