Buenas tengo dos dudas sobre el rendimiento de PDO , la primera es si al momento de hacer una consulta es mejor hacer la con "prepare" o hacerla directamente con "query" , la segunda es si en este momento existe algo mejor que PDO.
saludos
| ||||
Respuesta: Consulta con el rendimiento de PDO. Es mejor hacerla con prepare, si vas a enviar múltiples queries, ya que esto compila el query previamente en el RDBMS y lo deja en un estado que puedes llamarla múltiples veces sin afectar el rendimiento. El hacerla con query, no te da ningun beneficio y al contrario te puede dar más problemas ya que tu tienes que escapar tus variables para prevenir XSS. PDO es el API oficial de PHP para conectarse a las bases de datos, muchos ORMs, y Frameworks construyen sus clases encima de PDO por su flexibilidad. Saludos. |
| ||||
Respuesta: Consulta con el rendimiento de PDO. Muchas gracias por tu respuesta ya que mencionaste lo de las variables con PDO al colocar ? en el prepare lo puedo colocar en cualquier cosa osea si quiero colocar id dentro de un IN() lo puedo hacer asi IN ( ? ) .. saludos |
| ||||
Respuesta: Consulta con el rendimiento de PDO. Si quieres expandir un array en eso, creo no es posible a menos que escapes los valores que deben de ir, no es tan automatizado todo, solo te permite inyectar parámetros de esa forma. En el mismo manual lo indica: Cita: You must include a unique parameter marker for each value you wish to pass in to the statement when you call PDOStatement::execute(). You cannot use a named parameter marker of the same name twice in a prepared statement. You cannot bind multiple values to a single named parameter in, for example, the IN() clause of an SQL statement. |
| ||||
Respuesta: Consulta con el rendimiento de PDO. Así es si los pones como string funcionará directamente, pero si vas a aceptar diferentes parámetros no te conviene, por ejemplo: SELECT * FROM foo WHERE bar IN (?, ?, ?) Solo te soportaría 3 parámetros, siempre, no podrías enviar solo 1 o 2, o 4. |
Etiquetas: |