sql >> Database >  >> RDS >> Mysql

PHP PDO escape vraagteken zodat het niet denkt dat het een tijdelijke aanduiding is

PDO wordt niet verward door het vraagteken tussen de aanhalingstekens. Ik test dit gewoon met 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());

Het werkt prima, zonder fouten over een verkeerd aantal parameters. Uw fout wordt veroorzaakt door de manier waarop u parameters bindt, niet door de SQL-syntaxis.

Ik vermoed dat je ons niet de hele SQL-query hebt laten zien, want WHERE zonder FROM is sowieso een syntaxisfout. U moet dus extra tijdelijke aanduidingen voor parameters hebben die u ons niet heeft laten zien. Het zou ook handig zijn als je ons laat zien hoe je parameters bindt (of parameters doorgeeft om uit te voeren()).



  1. MySQL top-N ranking en de rest van dezelfde groep optellen

  2. Fout java.lang.ClassNotFoundException:com.mysql.jdbc.Driver tijdens het uitvoeren van JAR via de opdrachtregel

  3. Hoe krijg ik een telling, zelfs als er geen resultaten zijn die overeenkomen met mysql?

  4. Fout bij verwijderen van meerdere rijen