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

JDBC PreparedStatement resulterer i MySQL-syntaksfejl

I de fleste databaser kan du ikke parametrisere objektnavne som tabelnavne, i MySQL kan du teoretisk set, da MySQL Connector/J som standard ikke bruger parametre på serversiden, men i stedet omskriver den forespørgslen før den sendes til serveren. Værdien vil dog blive indsat som en citeret streng, og objektnavne kan ikke være en citeret streng, så den virker stadig ikke.

INSERT INTO ? eller SELECT ... FROM ? vil ikke virke, da det producerer INSERT INTO 'theTable' eller SELECT ... FROM 'theTable' .

Objektnavnene skal være en del af den faktiske forespørgsel. Brug ikke parametre til dem. De fleste andre databaser (eller deres drivere) ville have givet en undtagelse for at have en parameter i denne position.



  1. Dårlige vaner :Fokuserer kun på diskplads, når du vælger nøgler

  2. AVG() Funktion i PostgreSQL

  3. PHP Fatal fejl Der mangler hukommelse

  4. Korrekt værktøj får tuning til at fungere hurtigt