SQL - Imprimir consulta en PDO para poder verla

   
Vista:

Imprimir consulta en PDO para poder verla

Publicado por cotarejo (12 intervenciones) el 30/07/2015 19:39:38
Buenas tardes, tengo un problema con una consulta en mysql, por lo que me gustaría poder imprimirla por pantalla como hacía con mysqli, pero esta vez con PDO, tengo esto:

1
2
3
4
5
6
function consultamodal($pdo, $nombre) {
	$sentencia = $pdo->prepare("SELECT tablaplatos.nombre, tablaplatos.primerprimero, tablaplatos.segundoprimero, tablaplatos.tercerprimero, tablaplatos.primersegundo, tablaplatos.segundosegundo, tablaplatos.tercersegundo, tablaplatos.primerpostre, tablaplatos.segundopostre, tablaplatos.tercerpostre, tablaplatos.cafe, tablaplatos.pan, tablaprecios.precio FROM tablaplatos INNER JOIN tablaprecios  ON tablaplatos.id = tablaprecios.id WHERE tablaplatos.nombre=?");
	$sentencia->bindParam(1, $nombre);
        $sentencia->execute();
        return $sentencia;
}


y me gustaría poder ver la consulta con los Param que le lleguen. Estoy intentando hacer un

echo $sentencia;

Pero me dice:

Catchable fatal error: Object of class PDOStatement could not be converted to string in C:\wamp\www\proyect\php\conexiones.php on line 71


cómo podría ver la consulta con su parámetro incluído???

He probado con $sentencia -> debugDumpParams();

Pero tampoco me devuelve la consuta con parámentros....


Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve

Imprimir consulta en PDO para poder verla

Publicado por xve (237 intervenciones) el 31/07/2015 08:41:55
Has donde yo he llegado, no es posible...

Yo también utilizo PDO y no he conseguido ver la sentencia con los valores... haber si algún otro usuario nos puede inrormar.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Imprimir consulta en PDO para poder verla

Publicado por Rafael (83 intervenciones) el 31/07/2015 14:11:40
A ver si esto te sirve ...

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
<?php
class MyPDOStatement extends PDOStatement
{
  protected $_debugValues = null;
  protected function __construct()
  {
    // Constructor VACIO
  }
 
  public function execute($values=array())
  {
    $this->_debugValues = $values;
    try {
      $t = parent::execute($values);
    } catch (PDOException $e) {
      throw $e;
    }
    return $t;
  }
 
  public function _debugQuery($replaced=true)
  {
    $q = $this->queryString;
    if (!$replaced) {
      return $q;
    }
    return preg_replace_callback('/:([0-9a-z_]+)/i', array($this, '_debugReplace'), $q);
  }
 
  protected function _debugReplace($m)
  {
    $v = $this->_debugValues[$m[1]];
    if ($v === null) {
      return "NULL";
    }
    if (!is_numeric($v)) {
      $v = str_replace("'", "''", $v);
    }
    return "'". $v ."'";
  }
}
 
//Luego para EJECUTARLO
$options = array(
  PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
  PDO::ATTR_STATEMENT_CLASS => array('MyPDOStatement', array()),
);
 
$pdo = new PDO($dsn, $username, $password, $options);
$query = $pdo->prepare("INSERT INTO mytable (column1, column2, column3)
  VALUES (:col1, :col2, :col3)");
$query->execute(array(
  'col1' => "hello world",
  'col2' => 47.11,
  'col3' => null,
));
 
//Aqui puedes ver los resultados
var_dump( $query->queryString, $query->_debugQuery() );
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar