মাইএসকিউএলআই (MySQLi) PHP এর একটি শক্তিশালী এক্সটেনশন যা ডেটাবেসের সাথে ইন্টারঅ্যাক্ট করতে ব্যবহৃত হয়। মাইএসকিউএলআই এর মাধ্যমে বিভিন্ন টুল এবং লাইব্রেরির সাথে ইন্টিগ্রেশন করা সহজ, যা ডেটাবেস পরিচালনা এবং ডেটা নিরাপত্তা বাড়াতে সাহায্য করে। এখানে, আমরা মাইএসকিউএলআই এবং কিছু জনপ্রিয় টুলের ইন্টিগ্রেশন পদ্ধতি আলোচনা করব।
১. PDO (PHP Data Objects) এর সাথে ইন্টিগ্রেশন
PDO একটি পোর্টেবল ডেটাবেস অ্যাক্সেস লাইব্রেরি যা MySQL, PostgreSQL, SQLite সহ বিভিন্ন ডেটাবেসের সাথে কাজ করতে সহায়ক। যদিও MySQLi এবং PDO উভয়ই MySQL ডেটাবেসের সাথে কাজ করে, তবে PDO আরও বেশি ফ্লেক্সিবল, কারণ এটি একাধিক ডেটাবেস সিস্টেম সমর্থন করে।
MySQLi থেকে PDO তে স্থানান্তর:
MySQLi কোডটি PDO তে রূপান্তর করা সম্ভব, তবে কিছু পরিবর্তন আনা হয় যেমন প্রস্তুত করা স্টেটমেন্ট (prepared statements) এবং ডেটাবেস কানেকশন।
// MySQLi কানেকশন
$mysqli = new mysqli("localhost", "username", "password", "database_name");
// PDO কানেকশন
try {
$pdo = new PDO("mysql:host=localhost;dbname=database_name", "username", "password");
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
echo "কানেকশন ত্রুটি: " . $e->getMessage();
}
প্রস্তুত করা স্টেটমেন্ট (Prepared Statements) উদাহরণ:
// MySQLi
$stmt = $mysqli->prepare("SELECT * FROM users WHERE id = ?");
$stmt->bind_param("i", $user_id);
$stmt->execute();
// PDO
$stmt = $pdo->prepare("SELECT * FROM users WHERE id = :id");
$stmt->bindParam(':id', $user_id, PDO::PARAM_INT);
$stmt->execute();
২. জেএসএন (JSON) ডেটা ইন্টিগ্রেশন
মাইএসকিউএলআই এর মাধ্যমে JSON ডেটা সংগ্রহ করা এবং তা অন্য টুল বা API এর সাথে ইন্টিগ্রেট করা সহজ। JSON ফর্ম্যাটে ডেটা সংরক্ষণ ও প্রক্রিয়াকরণ একটি জনপ্রিয় পদ্ধতি।
JSON ডেটা ইনসার্ট করা:
<?php
// JSON ডেটা তৈরি
$json_data = json_encode(array("name" => "John", "age" => 30));
// MySQLi মাধ্যমে ইনসার্ট
$query = "INSERT INTO users (data) VALUES (?)";
$stmt = $mysqli->prepare($query);
$stmt->bind_param("s", $json_data);
$stmt->execute();
?>
JSON ডেটা রিড করা:
<?php
$query = "SELECT data FROM users WHERE id = ?";
$stmt = $mysqli->prepare($query);
$stmt->bind_param("i", $user_id);
$stmt->execute();
$stmt->bind_result($json_data);
$stmt->fetch();
// JSON ডেটা ডিকোড করা
$data = json_decode($json_data, true);
?>
৩. ফাইল সিস্টেমের সাথে ইন্টিগ্রেশন
মাইএসকিউএলআই এবং PHP ফাইল সিস্টেমের সাথে ইন্টিগ্রেট করা সহজ, যেখানে ফাইলের মাধ্যমে ডেটা আপলোড বা ডাউনলোড করা যায়। ডেটা অপারেশন করার সময় ফাইল ইন্টিগ্রেশন ব্যবহৃত হয়।
ফাইল আপলোড:
<?php
if ($_FILES['file']['error'] == 0) {
$file_tmp = $_FILES['file']['tmp_name'];
$file_name = $_FILES['file']['name'];
// ফাইলকে ডিরেক্টরিতে আপলোড করা
move_uploaded_file($file_tmp, "uploads/" . $file_name);
}
?>
ডেটাবেসে ফাইলের রেফারেন্স সংরক্ষণ:
<?php
$file_path = "uploads/" . $file_name;
// ফাইলের পাথ ডেটাবেসে ইনসার্ট করা
$query = "INSERT INTO files (file_path) VALUES (?)";
$stmt = $mysqli->prepare($query);
$stmt->bind_param("s", $file_path);
$stmt->execute();
?>
৪. REST API ইন্টিগ্রেশন
মাইএসকিউএলআই ডেটাবেসকে REST API এর মাধ্যমে ইন্টিগ্রেট করতে হলে, API কলের মাধ্যমে ডেটা প্রেরণ ও গ্রহণ করা হয়। PHP এ cURL লাইব্রেরি ব্যবহার করে API কল করা হয়।
REST API কল উদাহরণ:
<?php
// cURL ইনিশিয়ালাইজেশন
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://api.example.com/data");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
// JSON ডেটা ডিকোড করা
$data = json_decode($response, true);
?>
৫. Laravel এর সাথে ইন্টিগ্রেশন
Laravel একটি শক্তিশালী PHP ফ্রেমওয়ার্ক যা MySQLi বা PDO এর মাধ্যমে MySQL ডেটাবেসের সাথে ইন্টিগ্রেটেড। Laravel এর Eloquent ORM ডেটাবেস অপারেশনকে সহজ এবং দ্রুত করে।
// Laravel মডেল ব্যবহার করে ডেটাবেসে ডেটা ইনসার্ট
$user = new User();
$user->name = 'John';
$user->email = 'john@example.com';
$user->save();
সারসংক্ষেপ
মাইএসকিউএলআই (MySQLi) এর মাধ্যমে বিভিন্ন টুল এবং লাইব্রেরির সাথে ইন্টিগ্রেশন অত্যন্ত কার্যকরী। PDO, JSON ডেটা, ফাইল সিস্টেম, REST API, এবং Laravel এর মতো ফ্রেমওয়ার্কের সাথে একত্রিত হয়ে, মাইএসকিউএলআই ডেটাবেসের সাথে কাজ করার সুবিধা আরও বৃদ্ধি পায়।
MySQLi এবং phpMyAdmin দুটি আলাদা টুল, তবে এগুলি একসাথে ব্যবহৃত হয় MySQL ডাটাবেস পরিচালনা এবং ম্যানিপুলেট করার জন্য। MySQLi একটি PHP লাইব্রেরি যা ডাটাবেসের সাথে ইন্টারঅ্যাক্ট করতে ব্যবহৃত হয়, আর phpMyAdmin একটি ওয়েব-ভিত্তিক ইন্টারফেস যা MySQL ডাটাবেসের গ্রাফিক্যাল ব্যবস্থাপনা ও মনিটরিংয়ের জন্য ব্যবহৃত হয়।
MySQLi এবং PHP কোড
MySQLi PHP-তে ব্যবহৃত একটি লাইব্রেরি যা PHP স্ক্রিপ্টের মাধ্যমে MySQL ডাটাবেসের সাথে সংযোগ স্থাপন এবং কার্যক্রম পরিচালনা করতে সাহায্য করে। এটি Procedural এবং Object-Oriented দুইভাবে ব্যবহৃত হতে পারে।
MySQLi-তে ডাটাবেসের সাথে সংযোগ স্থাপন, ডাটা ইনসার্ট, সিলেক্ট, আপডেট, ডিলিট ইত্যাদি অপারেশন করা যায়। নিচে এর সাধারণ ব্যবহারের উদাহরণ দেওয়া হলো:
Object-Oriented Example:
<?php
// ডাটাবেস সংযোগ
$conn = new mysqli($servername, $username, $password, $dbname);
// সংযোগ চেক
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
// কোয়েরি তৈরি
$sql = "SELECT id, name FROM users";
$result = $conn->query($sql);
// ডাটা দেখানো
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo "id: " . $row["id"]. " - Name: " . $row["name"]. "<br>";
}
} else {
echo "0 results";
}
// সংযোগ বন্ধ করা
$conn->close();
?>
এখানে mysqli ক্লাসের মাধ্যমে ডাটাবেসের সাথে কাজ করা হয়েছে, যেখানে ডাটাবেসে সিলেক্ট কোয়েরি চালানো হয়েছে এবং ডাটা প্রিন্ট করা হয়েছে।
phpMyAdmin ব্যবহারের মূল বিষয়
phpMyAdmin একটি ওয়েব-ভিত্তিক টুল যা ব্যবহারকারীদের MySQL বা MariaDB ডাটাবেসের সাথে ইন্টারঅ্যাক্ট করতে সহায়তা করে। এটি সিস্টেম অ্যাডমিনিস্ট্রেটর বা ডেভেলপারদের জন্য ডাটাবেসের গ্রাফিক্যাল ইউজার ইন্টারফেস (GUI) প্রদান করে, যাতে তারা ডাটাবেস তৈরি, পরিবর্তন, প্রশ্ন করা ইত্যাদি কাজগুলো সহজে করতে পারে।
phpMyAdmin-এর মূল ফিচারগুলো:
- ডাটাবেস তৈরি: নতুন ডাটাবেস তৈরি করা এবং পরিচালনা করা।
- টেবিল পরিচালনা: টেবিল তৈরি, পরিবর্তন এবং ডিলিট করা।
- SQL কোড চালানো: SQL কোড লিখে বা স্ক্রিপ্ট চালিয়ে ডাটাবেস পরিচালনা করা।
- ডাটা ইনসার্ট: টেবিলে ডাটা ইনসার্ট করা বা আপডেট করা।
- ব্যাকআপ: ডাটাবেসের ব্যাকআপ নেওয়া এবং রিস্টোর করা।
- ইম্পোর্ট/এক্সপোর্ট: ডাটাবেসের ডাটা ইম্পোর্ট বা এক্সপোর্ট করা।
MySQLi এবং phpMyAdmin এর মধ্যে পার্থক্য
MySQLi এবং phpMyAdmin একই উদ্দেশ্যে ব্যবহৃত হলেও তাদের কাজের ধরণ ভিন্ন:
- MySQLi:
- একটি PHP লাইব্রেরি।
- কোডের মাধ্যমে ডাটাবেসের সাথে ইন্টারঅ্যাক্ট করতে ব্যবহৃত।
- ডাটাবেস পরিচালনা করার জন্য প্রোগ্রামিং জ্ঞান প্রয়োজন।
- ব্যবহৃত হয় সার্ভার সাইড স্ক্রিপ্টে।
- phpMyAdmin:
- একটি গ্রাফিক্যাল ইউজার ইন্টারফেস (GUI)।
- ডাটাবেসের পরিচালনা করতে সহজে ওয়েব ব্রাউজারের মাধ্যমে ব্যবহৃত।
- ব্যবহারকারীদের কোড না লিখেও ডাটাবেসের সমস্ত কার্যক্রম পরিচালনা করার সুবিধা দেয়।
- শুধুমাত্র ওয়েব ভিত্তিক অ্যাপ্লিকেশন হিসেবে ব্যবহৃত।
MySQLi এবং phpMyAdmin একসাথে ব্যবহার
MySQLi এবং phpMyAdmin একসাথে ব্যবহার করলে MySQL ডাটাবেসের কার্যক্রম সহজে পরিচালনা করা সম্ভব হয়। যখন আপনি phpMyAdmin ব্যবহার করে ডাটাবেসে কিছু পরিবর্তন করেন, তখন MySQLi কোডের মাধ্যমে সেই পরিবর্তনগুলো আপনার PHP অ্যাপ্লিকেশনেও প্রতিফলিত হতে পারে। উদাহরণস্বরূপ:
- আপনি phpMyAdmin-এ একটি টেবিল তৈরি করেছেন, এরপর সেই টেবিলকে PHP স্ক্রিপ্টে MySQLi ব্যবহার করে অ্যাক্সেস করতে পারেন।
- আপনি phpMyAdmin ব্যবহার করে ডাটা ইনসার্ট বা আপডেট করেছেন, এরপর MySQLi কোডে সেই ডাটা প্রিন্ট করতে পারবেন।
এটি ডাটাবেস পরিচালনা ও ডেভেলপমেন্টের জন্য একটি সমন্বিত পদ্ধতি।
MySQLi এবং phpMyAdmin একসাথে ব্যবহারের মাধ্যমে আপনি ডাটাবেসে দ্রুত পরিবর্তন করতে পারবেন, কোড লেখার মাধ্যমে কার্যকরী ডাটাবেস অ্যাপ্লিকেশন তৈরি করতে পারবেন এবং গ্রাফিক্যাল ইন্টারফেস ব্যবহার করে দ্রুত অপারেশন করতে পারবেন।
MySQLi (MySQL Improved) হল PHP এর একটি এক্সটেনশন, যা MySQL ডেটাবেসের সাথে আরও উন্নত এবং নিরাপদ সংযোগ স্থাপন করতে ব্যবহৃত হয়। তবে DBeaver এবং HeidiSQL মতো টুলস ব্যবহার করে আপনি MySQLi বা MySQL ডেটাবেসের সাথে আরও সহজে কাজ করতে পারেন। এই টুলসগুলি ডেটাবেস ম্যানেজমেন্ট, কনফিগারেশন, কোয়েরি এক্সিকিউশন এবং ডেটাবেস বিশ্লেষণ সহজ করে তোলে।
DBeaver এর সাথে MySQLi ব্যবহার
DBeaver একটি জনপ্রিয় ওপেন সোর্স ডেটাবেস ম্যানেজমেন্ট টুল, যা MySQL সহ বিভিন্ন ধরনের ডেটাবেস পরিচালনা করতে সাহায্য করে। আপনি DBeaver ব্যবহার করে MySQLi সংযোগ পরিচালনা করতে পারেন, যা ডেটাবেসের সাথে ইন্টারঅ্যাক্ট করার জন্য একটি গ্রাফিকাল ইন্টারফেস প্রদান করে।
১. DBeaver ইনস্টলেশন এবং কনফিগারেশন
- প্রথমে DBeaver ডাউনলোড এবং ইনস্টল করুন DBeaver এর অফিসিয়াল ওয়েবসাইট থেকে।
- ইনস্টল করার পর, DBeaver ওপেন করুন এবং Database ট্যাব থেকে New Database Connection নির্বাচন করুন।
- MySQL নির্বাচন করুন এবং Next ক্লিক করুন।
- ডাটাবেস হোস্ট, পোর্ট, ইউজারনেম এবং পাসওয়ার্ড দিয়ে সংযোগ তথ্য পূর্ণ করুন।
- Finish ক্লিক করে ডেটাবেসে সংযোগ স্থাপন করুন।
২. MySQLi কোয়েরি পরিচালনা
DBeaver দিয়ে MySQLi কোয়েরি এক্সিকিউট করার জন্য:
- DBeaver এর SQL Editor ট্যাব ওপেন করুন।
SQL কোয়েরি লিখুন, যেমন:
SELECT * FROM users;- কোয়েরি এক্সিকিউট করার জন্য Execute বাটন ক্লিক করুন।
- ফলাফল দেখতে পাবেন Result Set প্যানেলে।
৩. ডেটাবেস ম্যানেজমেন্ট
- আপনি DBeaver ব্যবহার করে টেবিল তৈরি, আপডেট, ডিলিট এবং ডেটাবেস সঞ্চালনা করতে পারবেন।
- ডেটাবেস স্কিমা এবং স্ট্রাকচার দেখার জন্য, ডেটাবেসটি সিলেক্ট করে Database Navigator প্যানেল থেকে টেবিলের তথ্য দেখতে পারেন।
HeidiSQL এর সাথে MySQLi ব্যবহার
HeidiSQL আরেকটি জনপ্রিয় ডেটাবেস ম্যানেজমেন্ট টুল যা MySQL, MariaDB, Microsoft SQL Server সহ অন্যান্য ডেটাবেসগুলোর জন্য ব্যবহৃত হয়। এটি একটি গ্রাফিক্যাল ইউজার ইন্টারফেস (GUI) প্রদান করে যা ডেটাবেস ম্যানেজমেন্ট সহজ করে।
১. HeidiSQL ইনস্টলেশন এবং কনফিগারেশন
- HeidiSQL ডাউনলোড এবং ইনস্টল করুন HeidiSQL এর অফিসিয়াল ওয়েবসাইট থেকে।
- ইনস্টল করার পর, HeidiSQL ওপেন করুন এবং New Session এ ক্লিক করুন।
- ডেটাবেস হোস্ট, পোর্ট, ইউজারনেম এবং পাসওয়ার্ড দিয়ে সংযোগ তথ্য পূর্ণ করুন।
- Save ক্লিক করে সেশন সেভ করুন এবং Open ক্লিক করে সংযোগ স্থাপন করুন।
২. MySQLi কোয়েরি এক্সিকিউট করা
HeidiSQL এর সাথে MySQLi কোয়েরি এক্সিকিউট করার জন্য:
- HeidiSQL এর Query Tab এ যান।
SQL কোয়েরি লিখুন, যেমন:
SELECT * FROM employees;- কোয়েরি এক্সিকিউট করতে Run বাটন ক্লিক করুন।
- ফলাফল দেখার জন্য Data প্যানেল ব্যবহার করুন।
৩. ডেটাবেস ম্যানেজমেন্ট
- HeidiSQL ব্যবহার করে আপনি টেবিল তৈরি, আপডেট, ডিলিট এবং ডেটাবেস সঞ্চালনা করতে পারবেন।
- Database Object সেকশনে টেবিল, ভিউ, ইনডেক্স এবং অন্যান্য অবজেক্টগুলো পরিচালনা করতে পারবেন।
DBeaver এবং HeidiSQL এর মধ্যে তুলনা
| বৈশিষ্ট্য | DBeaver | HeidiSQL |
|---|---|---|
| ইউজার ইন্টারফেস | উন্নত, গ্রাফিকাল, ব্যাপক কাস্টমাইজেশন | সহজ, সোজাসুজি এবং স্ট্রেইটফরওয়ার্ড |
| ডেটাবেস সমর্থন | MySQL, PostgreSQL, Oracle, MariaDB, SQLite | MySQL, MariaDB, Microsoft SQL Server, PostgreSQL |
| এক্সটেনশন/ফিচার | অনেক প্লাগিন এবং এক্সটেনশন ব্যবহারের সুবিধা | কম এক্সটেনশন এবং সহজ UI |
| ফ্রি/পেইড | সম্পূর্ণ ফ্রি এবং ওপেন সোর্স | সম্পূর্ণ ফ্রি এবং ওপেন সোর্স |
| ফিচারসেট | টেবিল বিশ্লেষণ, গ্রাফিকাল রিপোট, টাস্ক অটোমেশন | দ্রুত SQL কোয়েরি এক্সিকিউশন, সহজ ডেটাবেস ম্যানেজমেন্ট |
| কাস্টমাইজেশন | অনেক কাস্টমাইজেশন অপশন | কম কাস্টমাইজেশন অপশন |
সারাংশ
MySQLi এর সাথে DBeaver এবং HeidiSQL ব্যবহারের মাধ্যমে ডেটাবেস ম্যানেজমেন্ট এবং কোয়েরি এক্সিকিউশন অনেক সহজ হয়ে যায়। DBeaver একটি শক্তিশালী টুল যা উন্নত ফিচার এবং কাস্টমাইজেশন অপশন প্রদান করে, যখন HeidiSQL একটি সোজাসুজি এবং সহজ টুল যা দ্রুত SQL কোয়েরি এক্সিকিউশন এবং ডেটাবেস ম্যানেজমেন্টের জন্য উপযুক্ত। এই টুলসগুলি ডেটাবেস পরিচালনায় অত্যন্ত কার্যকর এবং উন্নত অভিজ্ঞতা প্রদান করে।
MySQLi এবং ওয়েব সার্ভার (Apache অথবা Nginx) একসাথে কাজ করে ডাইনামিক ওয়েব পেজ তৈরিতে গুরুত্বপূর্ণ ভূমিকা পালন করে। MySQLi (MySQL Improved) হল একটি PHP এক্সটেনশন যা MySQL ডেটাবেসের সাথে সংযোগ তৈরি, কুয়েরি রান, এবং ডেটা ব্যবস্থাপনা সহজ করে তোলে। অন্যদিকে, Apache এবং Nginx হল দুটি জনপ্রিয় ওয়েব সার্ভার, যা PHP স্ক্রিপ্ট এবং ডেটাবেসের সাথে যোগাযোগ স্থাপন করতে ব্যবহৃত হয়।
এই গাইডে, আমরা আলোচনা করব কিভাবে MySQLi এবং ওয়েব সার্ভারগুলো একসাথে কাজ করে ডেটাবেস সম্পর্কিত ডাইনামিক অ্যাপ্লিকেশন তৈরি করতে সাহায্য করে।
1. MySQLi এবং Apache/Nginx সার্ভার ইন্টিগ্রেশন
Apache Web Server Setup:
Apache হল বিশ্বের সবচেয়ে জনপ্রিয় ওপেন সোর্স ওয়েব সার্ভার। Apache সার্ভারকে PHP এবং MySQLi-এর সাথে কনফিগার করার জন্য আপনাকে কিছু নির্দিষ্ট কনফিগারেশন করতে হবে। সাধারণত, XAMPP (Windows), LAMP (Linux), বা MAMP (MacOS) প্যাকেজ ব্যবহার করা হয়, যেগুলোর মধ্যে Apache, MySQL, এবং PHP সবই অন্তর্ভুক্ত থাকে।
Nginx Web Server Setup:
Nginx হল একটি হালকা ওয়েব সার্ভার যা Apache এর তুলনায় বেশি ফাস্ট এবং স্কেলেবল। Nginx সাধারণত PHP-FPM (FastCGI Process Manager) এর মাধ্যমে PHP প্রক্রিয়াগুলি পরিচালনা করে, এবং MySQLi এর মাধ্যমে MySQL ডেটাবেসে সংযোগ স্থাপন করে।
2. Apache বা Nginx এবং MySQLi এর মধ্যে সংযোগ স্থাপন
PHP-MySQLi সংযোগ সাধারণভাবে ওয়েব সার্ভারের সাথে PHP স্ক্রিপ্টের মাধ্যমে স্থাপন করা হয়। নিচে দুটি ওয়েব সার্ভার (Apache এবং Nginx) এর সাথে MySQLi কিভাবে ইন্টিগ্রেট করা হয়, তার উদাহরণ দেওয়া হলো।
Apache Web Server এর সাথে MySQLi সংযোগ
- Apache, MySQL এবং PHP ইনস্টলেশন:
- Windows: XAMPP অথবা WAMP ইন্সটল করুন।
- Linux: LAMP (Linux, Apache, MySQL, PHP) স্ট্যাক ইন্সটল করুন।
- MacOS: MAMP অথবা Homebrew দিয়ে Apache, MySQL এবং PHP ইন্সটল করুন।
- PHP কোড ব্যবহার করে MySQLi সংযোগ:
এখানে একটি উদাহরণ দেওয়া হলো কিভাবে PHP স্ক্রিপ্টের মাধ্যমে Apache সার্ভারে MySQLi ব্যবহার করে ডেটাবেসের সাথে সংযোগ স্থাপন করা হয়।
<?php
// MySQLi দিয়ে সংযোগ তৈরি
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "test_db";
// সংযোগ তৈরি করা
$conn = new mysqli($servername, $username, $password, $dbname);
// সংযোগ সফল কিনা তা যাচাই করা
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully";
// কুয়েরি বা অন্যান্য অপারেশন এখানে চালান
$conn->close();
?>
বিশদ ব্যাখ্যা:
- প্রথমে localhost, root, এবং password এর মাধ্যমে ডেটাবেসে সংযোগ তৈরি করা হয়েছে।
- সংযোগ সফল হলে, "Connected successfully" বার্তা দেখাবে।
- Apache সার্ভারে PHP স্ক্রিপ্ট রান:
htdocsফোল্ডারে PHP স্ক্রিপ্ট রেখেhttp://localhost/your_script.phpURL এ গিয়ে স্ক্রিপ্টটি রান করা যাবে।
Nginx Web Server এর সাথে MySQLi সংযোগ
Nginx, Apache এর তুলনায় কিছু ভিন্নভাবে PHP স্ক্রিপ্টগুলো পরিচালনা করে। Nginx সাধারণত PHP প্রক্রিয়াগুলিকে PHP-FPM এর মাধ্যমে হ্যান্ডেল করে। MySQLi কে Nginx এর সাথে কাজ করার জন্য আপনাকে PHP-FPM ইনস্টল করতে হবে।
- Nginx, MySQL এবং PHP-FPM ইনস্টলেশন:
Linux: Nginx এবং PHP-FPM ইনস্টল করার জন্য নিচের কমান্ড ব্যবহার করতে পারেন:
sudo apt update sudo apt install nginx mysql-server php-fpm php-mysql
- PHP কোড দিয়ে MySQLi সংযোগ: PHP স্ক্রিপ্টটি Apache এর মতোই হবে, শুধুমাত্র সার্ভার সেটআপে কিছু ভিন্নতা থাকবে।
<?php
// MySQLi দিয়ে সংযোগ তৈরি
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "test_db";
// সংযোগ তৈরি করা
$conn = new mysqli($servername, $username, $password, $dbname);
// সংযোগ সফল কিনা তা যাচাই করা
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully";
// কুয়েরি বা অন্যান্য অপারেশন এখানে চালান
$conn->close();
?>
- Nginx কনফিগারেশন: Nginx সার্ভারের জন্য PHP-FPM কনফিগারেশনটি
/etc/nginx/sites-available/defaultবা আপনার নির্দিষ্ট কনফিগারেশন ফাইলে থাকা উচিত।
server {
listen 80;
server_name localhost;
root /var/www/html;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
বিশদ ব্যাখ্যা:
- এখানে Nginx এর fastcgi_pass সেটিং PHP-FPM এর সাথেও কনফিগার করা হয়েছে, যাতে PHP স্ক্রিপ্টগুলো সঠিকভাবে প্রক্রিয়া করা যায়।
- PHP-FPM এর মাধ্যমে PHP স্ক্রিপ্ট চালানো হয় এবং MySQLi সংযোগটি প্রতিষ্ঠিত হয়।
3. MySQLi এর সাথে ডেটাবেস কুয়েরি ব্যবহার
এখন যে ওয়েব সার্ভারই ব্যবহার করা হোক, MySQLi দিয়ে ডেটাবেসে কুয়েরি চালানোর প্রক্রিয়া একই রকম থাকবে। নিচে একটি সিম্পল SQL SELECT কুয়েরি এবং তার আউটপুট দেখানো হলো।
<?php
// MySQLi দিয়ে সংযোগ তৈরি
$conn = new mysqli("localhost", "root", "", "test_db");
// কুয়েরি তৈরি এবং রান
$sql = "SELECT id, name FROM users";
$result = $conn->query($sql);
// ডেটা প্রদর্শন
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo "id: " . $row["id"]. " - Name: " . $row["name"]. "<br>";
}
} else {
echo "0 results";
}
$conn->close();
?>
এই কোডটি ব্যবহার করে আপনি users টেবিলের ডেটা ব্রাউজারে দেখতে পারবেন। ওয়েব সার্ভার (Apache/Nginx) যেখানেই হোক, স্ক্রিপ্ট একই রকম কাজ করবে।
MySQLi এবং Apache/Nginx ইন্টিগ্রেশন দ্বারা ডাইনামিক ওয়েব অ্যাপ্লিকেশন তৈরি করা যায়, যেখানে PHP কোড ব্যবহার করে ডেটাবেস কুয়েরি চালানো হয় এবং ডেটা ওয়েব পেজে প্রদর্শন করা হয়। Apache সাধারণত সরাসরি PHP হ্যান্ডেল করে, আর Nginx PHP-FPM ব্যবহার করে PHP স্ক্রিপ্ট পরিচালনা করে। উভয় সার্ভারেই MySQLi এর মাধ্যমে ডেটাবেসের সাথে সংযোগ স্থাপন এবং ডেটা পরিচালনা করা সম্ভব।
Read more