MySQL-এ প্রিপেয়ারড স্টেটমেন্টের রেজাল্ট ভেরিয়েবলে রাখতে স্টোরড প্রসিডিউর ব্যবহার করুন।
উদাহরণ
mysql> CREATE TABLE DemoTable (Id INT, Name VARCHAR(100)); Query OK, 0 rows affected (1.51 sec) mysql> INSERT INTO DemoTable VALUES (10, 'John'), (11, 'Chris'); Query OK, 2 rows affected
স্টোরড প্রসিডিউর: ডাইনামিক কলাম/টেবিল/আইডি
mysql> DELIMITER //
mysql> CREATE PROCEDURE Prepared_Statement_Demo(
IN nameOfTable VARCHAR(20),
IN nameOfColumn VARCHAR(20),
IN idColumnName INT
)
BEGIN
SET @holdResult = CONCAT('SELECT ', nameOfColumn, ' INTO @value FROM ', nameOfTable, ' WHERE id = ', idColumnName);
PREPARE st FROM @holdResult;
EXECUTE st;
DEALLOCATE PREPARE st;
END //
Query OK, 0 rows affected (0.20 sec)
mysql> DELIMITER ;
কল করা
mysql> CALL Prepared_Statement_Demo('DemoTable', 'Name', 10);
Query OK, 0 rows affected, 2 warnings (0.00 sec)
ভেরিয়েবল চেক
mysql> SELECT @value;
+--------+ | @value | +--------+ | John | +--------+
ব্যাখ্যা
CONCATদিয়ে ডাইনামিক SQL বানানোPREPARE→ স্টেটমেন্ট কম্পাইলEXECUTE→ রানDEALLOCATE PREPARE→ মেমরি মুক্তINTO @value→ রেজাল্ট সেশন ভেরিয়েবলে
সতর্কতা: SQL ইনজেকশন প্রতিরোধে ইনপুট ভ্যালিডেশন করুন।