Ver Mensaje Individual
  #2 (permalink)  
Antiguo 22/08/2010, 13:33
Avatar de portalmana
portalmana
 
Fecha de Ingreso: septiembre-2007
Ubicación: Montevideo-Uruguay
Mensajes: 633
Antigüedad: 16 años, 7 meses
Puntos: 80
Respuesta: Duda con PDO y mi clase

Bueno no tengo del todo claro lo de PDO, puesto que hace poco estoy investigando el tema....
Pero con respecto a tus inquietudes lo que tengo entendido y saque en limpio es lo siguiente:
1> Si es cierto, pero si usas las sentencias preparadas y aparte utilizas en tus consulta o ? o :categoria que son los placeholders o marcadores, que indican que en ese lugar va a ir un valor. En ese caso si la variable es sanada, no en el caso que ya pases la consulta directamente.

2> Generalmente en producción, se trata de no volcar errores por pantalla que puedan dar información de la estructura de tu base, pero si capturas todos los errores y los cambias por otro tipo de mensaje quizás no tengas problemas.

3> Lo que sacaría es el uso del sprintf de:
$query = sprintf("SELECT nombre FROM categorias");
No tiene mucho sentido pues no das formato ni insertas variables a la consulta.
Lo mismo que en $query = sprintf("INSERT INTO categorias (nombre) values ('$this->nombreCategoria')"); pues ya le pasas la variable
Generalmente se usa para consultas prefabricadas y tu solo le pasas los parametros...
En el segundo caso podrías variar por ejemplo
Código PHP:
Ver original
  1. $sql = "INSERT INTO categorias (nombre) values (%s) ";
  2. $query= sprintf( $sql, $this->nombreCategoria );

O puedes usar las consultas preparadas de PDO con los marcadores, que en el enlace que dejas te muestra como se hace.

4> En lo personal me parece mas practico tener una clase separada como la tienes.

5> Si utilizas una instancia, pues estas usando un patrón singleton, es decir tu no accedes directamente al constructor pues este es privado, entonces lo haces con DB::getInstance() que lo que hace es fijarse si ya se instancio la clase si es así te retorna la instancia que ya tiene si no genera la instancia y te la retorna...

Espero te sea de ayuda...
Saludos
__________________
"La imaginación es más importante que el conocimiento. El conocimiento es limitado, mientras que la imaginación no" -- A.Einstein
objetivophp.com,twitter.com/objetivophp