sql >> Databasteknik >  >> RDS >> Mysql

PHP PDO undviker frågetecken så att det inte tror att det är en platshållare

PDO förväxlas inte av frågetecknet inuti citaten. Jag testar bara detta 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 fungerar bra, utan fel om fel antal parametrar. Ditt fel orsakas av hur du binder parametrar, inte av SQL-syntaxen.

Jag misstänker att du inte har visat oss hela SQL-frågan, eftersom WHERE utan FROM är ett syntaxfel ändå. Så du måste ha ytterligare parameterplatshållare som du inte har visat oss. Det skulle också vara till hjälp om du visar oss hur du binder parametrar (eller skickar parametrar till execute()).



  1. dubbletter av resultat

  2. Hur optimerar jag en databas för supersträngfrågor?

  3. alternativ till mysql_field_name i mysqli

  4. SQL - Hitta alla stilleståndstider och längden på stilleståndstiderna från MySQL-data (uppsättning rader med tidsstämplar och statusmeddelanden)