Rumah > pangkalan data > tutorial mysql > PreparedStatement `executeQuery()`: Mengapa Menggunakannya Tanpa Parameter String SQL?

PreparedStatement `executeQuery()`: Mengapa Menggunakannya Tanpa Parameter String SQL?

DDD
Lepaskan: 2024-11-20 13:14:15
asal
481 orang telah melayarinya

PreparedStatement `executeQuery()`: Why Use It Without a SQL String Parameter?

Ralat Sintaks PreparedStatement: Penyelaman Lebih Dalam

Anda telah menemui mesej ralat yang berkaitan dengan PreparedStatements. Meneliti kod anda, khususnya pertanyaan selectSql1 dan kaedah select1, mendedahkan isu halus.

Masalahnya terletak pada penggunaan kaedah executeQuery PreparedStatement. Kaedah select1 anda sedang cuba untuk memanggil:

return this.stmt.executeQuery(sql);
Salin selepas log masuk

di mana sql ialah pertanyaan SQL itu sendiri. Ini bukan cara yang betul untuk menggunakan kaedah executeQuery pada PreparedStatement.

Penyelesaian

Pembetulan hanya mengemas kini baris itu kepada:

return this.stmt.executeQuery();
Salin selepas log masuk

Dengan mengalih keluar parameter sql daripada kaedah executeQuery, anda memastikan bahawa pertanyaan dalaman PreparedStatement dilaksanakan dan bukannya rentetan SQL mentah. PreparedStatements menyediakan parameter pemegang tempat yang dilambangkan dengan tanda soal (?) dalam pertanyaan SQL, yang kemudiannya terikat pada nilai tertentu seperti randNum.

Oleh itu, panggilan executeQuery yang betul dalam konteks ini adalah tanpa sebarang parameter, membenarkan PreparedStatement untuk laksanakan pertanyaan dalamannya, yang telah diikat dengan nilai parameter.

Atas ialah kandungan terperinci PreparedStatement `executeQuery()`: Mengapa Menggunakannya Tanpa Parameter String SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan