sql >> Base de Datos >  >> RDS >> Mysql

PHP PDO escapa del signo de interrogación para que no crea que es un marcador de posición

PDO no se confunde con el signo de interrogación dentro de las comillas. Acabo de probar esto con PHP 5.5.15.

$sql = "SELECT CONCAT('path/to/page/?id=', id) AS link FROM foo WHERE name = ?;";
$stmt = $pdo->prepare($sql);
$stmt->bindValue(1, 'name');
$stmt->execute();
print_r($stmt->fetchAll());

Funciona bien, sin error sobre un número incorrecto de parámetros. Su error se debe a la forma en que vincula los parámetros, no a la sintaxis de SQL.

Sospecho que no nos ha mostrado la consulta SQL completa, porque WHERE sin FROM es un error de sintaxis de todos modos. Por lo tanto, debe tener marcadores de posición de parámetros adicionales que no nos haya mostrado. También sería útil si nos mostrara la forma en que está vinculando parámetros (o pasando parámetros para ejecutar()).