sql >> Database teknologi >  >> RDS >> Mysql

PHP PDO undslipper spørgsmålstegn, så den tror ikke, det er en pladsholder

PDO forveksles ikke af spørgsmålstegnet inde i citaterne. Jeg har lige testet dette med 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());

Det fungerer fint, uden fejl om et forkert antal parametre. Din fejl er forårsaget af den måde, du binder parametre på, ikke af SQL-syntaksen.

Jeg formoder, at du ikke har vist os hele SQL-forespørgslen, for WHERE uden FRA er alligevel en syntaksfejl. Så du skal have yderligere parameterpladsholdere, som du ikke har vist os. Det ville også være nyttigt, hvis du viser os, hvordan du binder parametre (eller sender parametre til execute()).



  1. PHP og MySQL:Antal returnerede rækker

  2. Sådan nulstiller du Amazon RDS Master User Password

  3. Hvordan opdaterer man en xml-attributværdi i en xml-variabel ved hjælp af t-sql?

  4. POSTMAN returnerer datofelter med ændrede værdier