MyQL সংযোগ

MySQL Database থেকে ডেটা পেতে হলে আগে অবশ্যই আপনাকে MySQL Database এর সাথে সংযোগ(connect) হতে হবে।পিএইচপি তে এই কানেকশন এইভাবে করতে হয়।

 সংকেত
1.mysql_connect(servername,username,password);
Parameter বর্ননা
servername এটা নির্দেশ করে ঐ IP address বা ঐ কম্পিউটারের host name যেখানে MySQL server সফটওয়্যারটা চলছে(ধরুন যে কম্পিউটার টির সামনে বসে আছেন সেখানেই যদি এই MySQL server (web server software)চালু থাকে তাহলে তখন servername হবে “localhost”)
username এর ডিফল্ট ভ্যালু হচ্ছে ঐ ইউজারের নাম যে এই সার্ভার প্রসেসের মালিক।
password এর ডিফল্ট ভ্যালু হচ্ছে “”
আরও কিছু প্যারামিটার আছে তবে এগুলোই বেশি গুরত্বপূর্ন।আচ্ছা আপনার নিশ্চয় মনে আছে পিএইচপি তে যখন একটা ফাংশনকে call করা হয় তখন এটা একটা মান return(output)করে।
তদ্রুপ Mysql_connectফাংশনটাও কানেকশনটা স্থাপিত হওয়ার পর একটা নাম্বার return(output) করে যা করে যেটা কানেকশনটাকে চিহ্নিত(পরিচিত) করে।ওকে এবার MySQL এর সাথে কানেক্ট হওয়ার কোডটি দেখি
01.<?php
02.$con = @mysql_connect("localhost","root","");
03.if (!$con)
04.{
05.echo ('Could not connect: ' . mysql_error());
06.exit();
07.}
08.echo "Connected";
09.// some code
10.?>

এই কোডটি .php extension দিয়ে সেভ করে localhost এর htdocs এ রাখুন এরপর রান করান।
এখানে একটা জিনিস গুরত্বপূর্ন তা হচ্ছে Mysql_connect ফাংশনটা একটা মান (যেটাকে আমরা connection identifier বলব)return(output)করবে যেটা $con variable এ store করা থাকবে এবং পরে এটা পিএইচপি script এ ব্যাবহার হয়।যেহেতু MySQL একটা আলাদা সফটওয়্যার তাই কোনো সময় এমন হতে পারে যে সার্ভারটি নেটওয়ার্কের বাইরে চলে গেল অথবা ইউজারনেম বা পাসওয়ার্ড মিলল না তখন Mysql_connect ফাংশনটা কোন connection identifier প্রেরন করবেনা বরং এটা false return করবে।
এবার দেখুন উপরের কোডে ৩ টি নতুন জিনিস ব্যাবহার করা হয়েছে এগুলো হচ্ছে-
১.@ চিহ্ন: Mysql_connect ফাংশনটা যদি কানেক্ট করতে ব্যার্থ হয় তাহলে একটা অবোধগম্য মেসেজ প্রদর্শন করে।এখন যদি সামনে এই চিহ্নটা(error suppression operator)দিয়ে দেই তাহলে ফাংশনটিকে বলে দিচ্ছি ব্যার্থ হলেও তোমার মেসেজ দেখবনা ব্যার্থ হলে আমার মেসেজটা দেখব যেটা আমি আগে তৈরী করে রেখেছি।
২.!(negation operator):এই চিহ্নটা আসলে যার সামনে বসে তার অর্থকে বিপরীত করে দেয়।যেমন if($con) এর অর্থ “যদি কানেকশন স্থাপিত হয়” আর এর পূর্বে ! চিহ্নটি দেয়াতে এর অর্থ হল “যদি কানেকশন স্থাপিত না হয়”।
৩.exit এই ফাংশনটার কারনে পিএইচপি পড়া বন্ধ করে দেয় ঐ জায়গায়ই যেখানে এটা লেখা হয়।যেমন আমি ব্যাবহার করেছি ফলে পিএইচপি পড়া বন্ধ করে দেবে যদি কানেকশন হতে না পারে।যদি কানেকশন করতেই না পারে তাহলে  পিএইচপি কে পরবর্তী কোড পড়িয়ে লাভ কি,তাই না?

কানেকশন বন্ধ করা:

কানেকশন অটোমেটিকালি বন্ধ হয়ে যাবে যখন পিএইচপি script শেষ হয়।এজন্য এই ফাংশনটি ব্যাবহৃত হয়
01.<?php
02.$con = mysql_connect("localhost","root","");
03.if (!$con)
04.{
05.die('Could not connect: ' . mysql_error());
06.}
07. 
08.// some code
09. 
10.mysql_close($con);
11.?>
 উপরে পিএইচপির মুল MySQL এক্সটেনশন দিয়ে ডেটাবেস সংযোগ করার পদ্ধতি দেখানো হয়েছে এবার বাকি দুটি পদ্ধতি দেখানো হল।

 পৃষ্ঠা 2---->মাইএসকিউয়েল সংযোগ  PDO এবং mysqli দিয়ে সংযোগ 

mysqli এক্সটেনশনের সাথে কাজ করার জন্য php.ini ফাইলে extension=php_mysqli.dll এই লাইনটি আনকমেন্ট করতে হবে।
1.<?php
2.$conn = new mysqli('localhost','root','','book_sc');
3.if($conn->errno){
4.printf("Unable to connect to database : %s",$conn->errno);
5.exit();
6.}
7.echo "connected";
8.?>
ব্যাখ্যা:২ নম্বর লাইনে mysqli ক্লাসটিকে instantiate করা হয়েছে এরপর প্রথম প্যারামিটার হোস্টের নাম (এখানে localhost),২য় প্যারামিটার ইউজার নাম (এখানে root),৩য় প্যারামিটার পাসওয়ার্ড (এখানে পাসওয়ার্ড নেই তাই ফাকা রাখা হয়েছে) সবশেষের প্যারামিটারে ডেটাবেসের নাম (এখানে book_sc)
এরপরের লাইনগুলি দিয়ে এরর হলে একটা মেসেজ দেখানো হবে আর তানাহলে connected মেসেজ দেখাবে।না বুঝলে এই সাইটের অবজেক্ট অরিয়েন্টেড প্রোগামিং,পিএইচপি বেসিক সিনট্যাক্স এবং কন্ডিশনাল স্টেটমেন্ট এর টিউটোরিয়ালগুলি দেখতে পারেন।
পিএইচপির PDO এক্সটেনশন ব্যবহারের জন্য php.ini ফাইলে extension=php_pdo.dll এবং
extension=php_pdo_mysql.dll লাইন আনকমেন্ট করতে হবে।
1.<?php
2.try {
3.$conn = new PDO("mysql:host=localhost;dbname=book_sc", "root", "");
4.} catch (PDOException $e) {
5.echo $e->getMessage();
6.}
7.?>
৩ নম্বর লাইনে প্রথম প্যারামিটারে ডেটাবেস সফটওয়ারের নাম (এখানে mysql), হোস্টের নাম(এখানে localhost) এবং ডেটাবেসের নাম (এখানে book_sc) "mysql:host=localhost;dbname=book_sc" এভাবে লেখা হয়েছে এটাকে  $dsn (data source name) বলা যায়।
এরপরের প্যারামিটার দুটির একটি ইউজার নাম এবং অপরটি পাসওয়ার্ড।
try .... catch স্টেটমেন্ট
অবজেক্ট অরিয়েন্টেড পদ্ধতিতে try ..catch স্টেটমেন্ট ব্যবহারের একটা বিশেষ সুবিধা আছে।try ব্লকে যে কোড লেখা হবে সেখানে যদি কোন ভুল হয় তাহলে সেটা catch ব্লকে পাঠানো হয়ে সেখানে প্রসেস হয়ে একটা বোধগম্য এরর মেসেজ দেখায়।



কোন মন্তব্য নেই

Blogger দ্বারা পরিচালিত.