Pertanyaan SQL Dinamik: tetapkan nama jadual
Dalam pertanyaan SQL dinamik, anda boleh menggunakan kaedah tertentu untuk menyediakan parameter secara dinamik dan menetapkan nama jadual. Walaupun anda telah berjaya menetapkan parameter, anda kini memerlukan panduan tentang cara menetapkan nama jadual secara dinamik.
Tetapkan nama jadual secara dinamik
Untuk mengelakkan kelemahan suntikan SQL, disyorkan untuk menggunakan fungsi apabila boleh. Dalam kes ini, anda boleh menggabungkan beberapa teknik untuk menetapkan nama jadual secara dinamik:
<code class="language-sql">SET @TableName = '<[db].><[schema].>tblEmployees' SET @TableID = OBJECT_ID(@TableName) --如果格式错误/注入,则无法解析。 SET @SQLQuery = 'SELECT * FROM ' + QUOTENAME(OBJECT_NAME(@TableID)) + ' WHERE EmployeeID = @EmpID'</code>
Skrip ini memulakan nama jadual sebagai parameter dan kemudian mendapatkan ID objek asas untuk memastikan nama yang diberikan adalah sah. Jika nama jadual yang diberikan adalah salah bentuk atau telah disuntik sebagai kelemahan SQL, ID objek tidak akan diselesaikan.
Akhir sekali, buat rujukan kepada nama jadual untuk mengelakkan kemungkinan serangan suntikan SQL dan lengkapkan pertanyaan SQL dinamik dengan menambahkan parameter ID pekerja yang disediakan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menetapkan Nama Jadual Secara Dinamik dalam Pertanyaan SQL Dinamik untuk Mencegah Suntikan SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!