কম্পিউটার টিউটোরিয়াল

MySQL-এ প্রিপেয়ারড স্টেটমেন্ট থেকে রেজাল্ট ভেরিয়েবলে অ্যাসাইন (স্টোরড প্রসিডিউর)

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 ইনজেকশন প্রতিরোধে ইনপুট ভ্যালিডেশন করুন।

  1. MySQL-এ টার্মিনাল থেকে SQL ফাইল রান করা (mysql কমান্ড)

  2. MySQL কোয়েরির ফলাফল একটি ভেরিয়েবলে সংরক্ষণ করা (@variable)

  3. স্ট্যান্ডার্ড SQL-এর সাথে MySQL-এর পার্থক্য

  4. MySQL ক্লায়েন্টে টেক্সট ফাইল থেকে SQL স্টেটমেন্ট এক্সিকিউট করা