Meloloskan Diri dari Aksara Colon dalam Pertanyaan JPA
Apabila menggunakan pertanyaan JPA asli yang menyertakan aksara kolon (':'), pembangun mungkin menghadapi pengecualian yang berkaitan dengan sintaks tidak sah. Ini benar terutamanya apabila menggunakan pembolehubah pengguna MySQL dalam pertanyaan.
Dalam contoh yang disediakan, pertanyaan asli cuba memanipulasi pembolehubah '@rownum' dan '@id', tetapi JPA gagal menghuraikan pertanyaan yang perlu kepada ralat sintaks. Untuk menyelesaikan isu ini, adalah penting untuk melepaskan watak kolon dengan betul.
Walaupun melarikan diri dengan garis serong ke belakang dan menggandakan titik bertindih adalah pendekatan biasa, ia tidak sesuai dalam kes ini. Penyelesaiannya adalah untuk melarikan diri daripada aksara titik bertindih menggunakan garisan ke belakang, diikuti dengan garisan ke belakang kedua.
Oleh itu, pertanyaan JPA yang dikemas kini sepatutnya kelihatan seperti ini:
String query = "SELECT foo, bar, baz, \n" + " @rownum:= if (@id = foo, @rownum+1, 1) as rownum, \n" + " @id := foo as rep_id \n" + "FROM \n" + " foo_table \n" + "ORDER BY \n" + " foo, \n" + " bar desc ";
Dengan melarikan diri dua kali dari kolon watak, anda boleh melarikan diri dengan berkesan dalam pertanyaan JPA dan menghalang ralat sintaks. Pendekatan ini membolehkan anda menggunakan pembolehubah pengguna MySQL dalam pertanyaan JPA asli tanpa sebarang isu.
Atas ialah kandungan terperinci Bagaimana untuk Melarikan Watak Kolon dalam Pertanyaan JPA untuk Pembolehubah Pengguna MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!