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

PDO:Przekaż funkcję MySQL do bindValue/bindParam

Nie. Parametr zapytania zastępuje tylko jedną stałą wartość. Na przykład stała numeryczna, ciąg literału lub data.

Wszystko inne — nazwy kolumn, nazwy tabel, słowa kluczowe SQL, funkcje, wyrażenia — musi znajdować się w ciągu SQL w czasie analizy.

Odpowiedz na swój komentarz:

Powinieneś zrozumieć, że parametry nie po prostu dla wygody interpolacji dodatkowych ciągów do twojego SQL. PREPARE jest analogiczne do fazy kompilacji dla Javy lub C#, podczas gdy EXECUTE jest analogiczne do uruchamiania skompilowanego kodu.

Czas przygotowania jest wtedy, gdy RDBMS sprawdza składnię, a także walidację odwołań. Musi dawać błąd, jeśli nazwiesz tabelę, która nie istnieje, lub wywołasz funkcję, która nie istnieje.

Nie możesz przekazać nazw tabel lub wywołań funkcji jako parametrów, ponieważ wtedy RDBMS nie byłby w stanie zweryfikować tych odwołań w czasie przygotowania. Nie powinieneś być w stanie użyć parametru zapytania do zmiany składni instrukcji lub wprowadzenia nieprawidłowych tabel lub funkcji.

Tak więc symbol zastępczy parametru musi być nieredukowalnym elementem składniowym, który nigdy nie jest nieprawidłowym odniesieniem, tj. pojedynczą wartością literału — liczbą lub ciągiem znaków.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Najlepszy sposób na zachowanie unikatowości pola TEKSTOWEGO w bazie danych MySQL

  2. Jak nadać wartość wygenerowaną przez wyzwalacz w Hibernate ValueObject?

  3. mysql zapytanie przestawne/przestawne

  4. Jak wstawić moment JS do MySQL

  5. Jak wyeksportować bazę danych mysql na inny komputer?