Buenas tardes,vengo trabajando recientemente con PDO::prepare, y veo que puedo usar estas 2 opciones, las 2 me funcionan bien ademas de PDO::query,pero lo que quisiera saber es cual es la diferencia entre un metodo u otro(usar :name o ?) ya que en el manual no lo explica claramente o lo yo no entiendo.
Ejemplo #1 Prepara una sentencia SQL con parámetros de sustitución nombrados
Ejemplos #1
Código PHP:
Ver original<?php
/* Ejecuta una sentencia preparada pasando un array de valores */
$sql = 'SELECT name, colour, calories
FROM fruit
WHERE calories < :calories AND colour = :colour';
$sth = $dbh->prepare($sql, array(PDO
::ATTR_CURSOR => PDO
::CURSOR_FWDONLY)); $sth->execute(array(':calories' => 150, ':colour' => 'red')); $red = $sth->fetchAll();
$sth->execute(array(':calories' => 175, ':colour' => 'yellow')); $yellow = $sth->fetchAll();
?>
Ejemplo #2 Prepara una sentencia SQL con parámetros de signos de interrogación
Código PHP:
Ver original<?php
/* Ejecuta una sentencia preparada pasando un array de valores */
$sth = $dbh->prepare('SELECT name, colour, calories
FROM fruit
WHERE calories < ? AND colour = ?');
$sth->execute(array(150, 'red')); $red = $sth->fetchAll();
$sth->execute(array(175, 'yellow')); $yellow = $sth->fetchAll();
?>