PREPARED STATEMENT দিয়ে রানটাইমে কলাম নাম নির্ধারণ
MySQL-এ কলাম নাম ডাইনামিকভাবে (রানটাইমে) নির্বাচন করতে PREPARE এবং EXECUTE ব্যবহার করতে হয়। এটি ডাইনামিক SQL তৈরি করার পদ্ধতি।
টেবিল ও ডেটা
mysql> CREATE TABLE DemoTable (EmployeeName VARCHAR(100));
mysql> INSERT INTO DemoTable VALUES('John Doe');
ডাইনামিক কোয়েরি তৈরি ও এক্সিকিউট
mysql> SET @dynamicQuery = CONCAT("SELECT ", (SELECT "EmployeeName from DemoTable"));
Query OK, 0 rows affected (0.00 sec)
mysql> SELECT @dynamicQuery;
+---------------------------------------+
| @dynamicQuery |
+---------------------------------------+
| SELECT EmployeeName from DemoTable |
+---------------------------------------+
mysql> PREPARE myStatement FROM @dynamicQuery;
Query OK, 0 rows affected (0.00 sec)
mysql> EXECUTE myStatement;
+--------------+ | EmployeeName | +--------------+ | John Doe | +--------------+
ধাপগুলো
CONCAT()দিয়ে কোয়েরি স্ট্রিং তৈরি করুন।PREPARE stmt_name FROM @variableদিয়ে স্টেটমেন্ট প্রস্তুত করুন।EXECUTE stmt_nameদিয়ে চালান।- শেষে
DEALLOCATE PREPARE stmt_nameদিয়ে মুক্ত করুন।
সতর্কতা
- SQL ইনজেকশন ঝুঁকি থাকে — ইউজার ইনপুট স্যানিটাইজ করুন।
- শুধু SELECT, INSERT, UPDATE, DELETE ইত্যাদি DML স্টেটমেন্ট প্রিপেয়ার করা যায়।