Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

JDBC PreparedStatement menghasilkan kesalahan sintaks MySQL

Di sebagian besar basis data, Anda tidak dapat memparametrikan nama objek seperti nama tabel, di MySQL secara teoritis Anda dapat melakukannya karena MySQL Connector/J secara default tidak menggunakan parameter sisi server, melainkan menulis ulang kueri sebelum mengirimnya ke server. Namun nilai akan disisipkan sebagai string yang dikutip, dan nama objek tidak dapat berupa string yang dikutip, sehingga tetap tidak berfungsi.

Jadi INSERT INTO ? atau SELECT ... FROM ? tidak akan berfungsi, karena menghasilkan INSERT INTO 'theTable' atau SELECT ... FROM 'theTable' .

Nama objek harus menjadi bagian dari kueri yang sebenarnya. Jangan gunakan parameter untuk mereka. Sebagian besar database lain (atau drivernya) akan mengeluarkan pengecualian karena memiliki parameter di posisi ini.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Perbandingan kode pos MySQL PHP secara khusus jarak

  2. Cara Menghindari Memasukkan Duplikat Catatan di MySQL

  3. Banyak status Query End di MySQL, semua koneksi digunakan dalam hitungan menit

  4. Buat tabel baru dari menggabungkan dua tabel dengan union

  5. Apakah mungkin membuat dua kunci utama dalam satu tabel?