Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Znak zapytania PHP PDO escape, więc nie myśli, że jest to symbol zastępczy

PDO nie jest mylony ze znakiem zapytania w cudzysłowie. Po prostu testuję to z 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());

Działa dobrze, bez błędu o nieodpowiedniej liczbie parametrów. Twój błąd jest spowodowany sposobem wiązania parametrów, a nie składnią SQL.

Podejrzewam, że nie pokazałeś nam całego zapytania SQL, bo GDZIE bez FROM i tak jest błąd składniowy. Musisz więc mieć dodatkowe symbole zastępcze parametrów, których nam nie pokazałeś. Byłoby również pomocne, gdybyś pokazał nam, w jaki sposób łączysz parametry (lub przekazujesz parametry do funkcji execute()).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak ukończyć ten tunel SSH od lokalnego dokera programistycznego do tymczasowej bazy danych?

  2. jak aktualizować bazę danych sekwencyjnie za pomocą mysql

  3. MySQL:Jak obliczyć tygodnie od określonej daty?

  4. MySQL:Dlaczego wynik zawsze wynosi 1 w pełnym tekście?

  5. Jak rozwiązać problem django.db.utils.IntegrityError:(1364, pole „nazwa” nie ma wartości domyślnej)