পিএইচপি এসকিউএল ওয়ার্ডপ্রেস জাভাস্ক্রিপ্ট জেকুয়েরি এইচটিএমএল
ফোরাম
×

পিএইচপি টিউটোরিয়াল

হোম-HOME পরিচিতি-Introduction ইনস্টল-Install গঠনপ্রনালী-Syntax চলক-Variable পিএইচপি Echo / Print তথ্যের ধরণ-Data Types কনস্ট্যান্ট-Constant অপারেটর-Operator ফাংশন-Function সুপারগ্লোভাল-Superglobal

কন্ট্রোল স্টেটমেন্ট

if স্টেটমেন্ট if...Else স্টেটমেন্ট Switch স্টেটমেন্ট While লুপ DO...While লুপ For লুপ

পিএইচপি এ্যারে এবং স্ট্রিং

এ্যারে-Array এ্যারে সর্টিং -Array Sorting মাল্টি এ্যারে-Multi Array স্ট্রিং-String

পিএইচপি এডভান্স

তারিখ এবং সময় পিএইচপি include ফাইল হ্যান্ডলিং-File Handling ফাইল খোলা/পড়া ফাইল তৈরি/লিখা ফাইল আপলোড ফাইল ডাউনলোড কুকি-Cookie সেশন-Session ফিল্টার-Filter এডভান্স ফিল্টার-Advance Filter এঁরর হ্যান্ডলিং-Error Handling এক্সেপশন হ্যান্ডেলিং-Exception Handling

পিএইচপি ফরম

ফরম হ্যান্ডলিং ফরম ভ্যালিডেশন আবশ্যক ফরম ফিল্ড ফরম URL/E-mail সম্পূর্ণ ফরম

MySQL ডেটাবেজ

MySQL ডেটাবেজ MySQL ডেটাবেজ সংযোগ MySQL ডেটাবেজ তৈরী MySQL টেবিল তৈরী MySQL তথ্য ইনসার্ট MySQL শেষ আইডি পান MySQL একাধিক তথ্য ইনসার্ট MySQL প্রিপেয়ার্ড স্টেটমেন্ট MySQL তথ্য সিলেক্ট MySQL তথ্য ডিলিট MySQL তথ্য আপডেট MySQL সীমিত তথ্য সিলেক্ট

পিএইচপি- এক্সএমএল

PHP XML Parser PHP SimpleXML Parser PHP XML Parser PHP SimpleXML - Get PHP XML Expat PHP XML Dom

পিএইচপি - এজাক্স

পিএইচপি AJAX পরিচিতি AJAX পিএইচপি AJAX ডেটাবেজ AJAX এক্সএমএল AJAX সারাসরি সার্চ AJAX RSS রির্ডার AJAX Poll

পিএইচপি অবজেক্ট অরিয়েন্টেড প্রোগ্রামিং(OOP)

OOP পরিচিতি OOP class তৈরী OOP objects তৈরী OOP $this কিওয়ার্ড OOP মেথড এবং প্রোপার্টি চেইনিং OOP অ্যাক্সেস মোডিফায়ার OOP ম্যাজিক মেথড এবং কন্সটেন্ট OOP ইনহেরিটেন্স OOP Abstract class এবং method OOP ইন্টারফেস OOP পলিমরফিজম OOP টাইপ হিন্টিং() OOP টাইপ হিন্টিনং ইন্টারফেস OOP স্ট্যাটিক মেথোড এবং প্রোপার্টি

 

পিএইচপি MySQL সংযোগ


পিএইচপি ৫ এবং এর পরবর্তী যেকোনো ভার্সন নিম্নোক্ত এক্সটেনশন গুলোর মাধ্যমে MySQL ডেটাবেজ এর সাথে কাজ করতে সক্ষমঃ

  • MySQLi extension
  • PDO(PHP Data Objects)

পিএইচপি৫ এর পূর্ববর্তী ভার্সনসমূহ MySQL এক্সটেনশন ব্যবহার করতো। যাইহোক, ২০১২ সালে এই এক্সটেনশনটি বাতিল হয়ে যায়। বর্তমানে MySQL এর পরিবর্তে MySQLi এক্সটেনশন ব্যবহার করা হয়। এখানে অতিরিক্ত i এর পূর্ণরুপ হচ্ছে improved অর্থাৎ উন্নত।


MySQLi অথবা PDO আপনি কোনটা ব্যবহার করবেন?

আপনি যদি এই প্রশ্নের সংক্ষিপ্ত উত্তর পেতে চান তাহলে আমরা বলবো "আপনার যেটা খুশি ব্যবহার করতে পারেন"। কারন উভয়েরই বিভিন্ন উপকারিতা রয়েছেঃ

যাইহোক, PDO ১২টি ভিন্ন ভিন্ন ডেটাবেজ সিস্টেমে কাজ করতে সক্ষম হলেও MySQLi শুধুমাত্র MySQL ডেটাবেজে কাজ করে।

সুতরাং আপনি যদি আপনার প্রজেক্টের জন্য ডেটাবেজ পরিবর্তন করতে চান তাহলে PDO আপনার এই কাজটি অনেক সহজ করে দিবে। কেননা, এক্ষেত্রে আপনাকে শুধুমাত্র সংযোগ স্ট্রিং এবং কিছু কুয়েরি পরিবর্তন করতে হবে। কিন্তু MySQLi এর ক্ষেত্রে আপনাকে কুয়েরিসহ সকল কোড পুনরায় লিখতে হবে।

উভয় প্রক্রিয়া অব্জেক্ট অরিয়েন্টেড হলেও MySQLi প্রসিডিউরাল(procedural) API-ও অফারে করে।

উভয় এক্সটেনশন Prepared স্টেটমেন্ট সমর্থন করে। Prepared স্টেটমেন্ট SQL injection থেকে রক্ষা করে যা ওয়েব অ্যাপ্লিকেশনের নিরাপত্তার জন্য খুবই গুরুত্বপূর্ণ।


আমরা আমাদের টিউটোরিয়ালে নিম্নের প্রক্রিয়া দুটির মাধ্যমে পিএইচপি এবং MySQL নিয়ে কাজ করবোঃ

  • MySQLi (object-oriented)
  • MySQLi (procedural)

MySQL এর সাথে সংযোগ তৈরি

পিএইচপির মাধ্যমে আপনি যদি MySQL ডেটাবেজ থেকে ডেটা অ্যাক্সেস করতে চান তাহলে প্রথমেই আপনাকে সার্ভারের সাথে সংযোগ তৈরি করতে হবেঃ

নিম্নে MySQLi প্রসিডিউরাল এবং অবজেক্ট অরিয়েন্টেড উভয় প্রক্রিয়ায় সংযোগ তৈরি করে দেখানো হলোঃ

উদাহরণঃ MySQLi প্রসিডিউরাল(Procedural) প্রক্রিয়ায় সংযোগ তৈরি
<?php
// সংযোগ তৈরি
$conn = mysqli_connect("localhost", "username", "password");

// সংযোগ পরীক্ষা
if (!$conn) {
    die("সংযোগ ব্যর্থ হয়েছেঃ " . mysqli_connect_error());
}
echo "সফলভাবে সংযুক্ত হয়েছে।";

// সংযোগ বিচ্ছিন
mysqli_close($conn);  

?>

উদাহরণঃ MySQLi অব্জেক্ট-অরিয়েন্টেড প্রক্রিয়ায় সংযোগ তৈরি
<?php
// সংযোগ তৈরি
$conn =	new mysqli("localhost", "username", "password");

// সংযোগ পরীক্ষা
if ($conn->connect_error) {
    die("সংযোগ ব্যর্থ হয়েছেঃ " . $conn->connect_error);
}
echo "সফল্ভাবে সংযুক্ত হয়েছে।";

// সংযোগ বিচ্ছিন
$conn->close();
?>

উপরের অব্জেক্ট-অরিয়েন্টেড উদাহরনের $conn->connect_error প্রোপার্টিটি শুধুমাত্রে পিএইচপি ৫.২.৯ এবং ৫.৩.০ ভার্সনে ঠিকমত কাজ করে। এর পুর্বের ভার্সন গুলোতে সঠিকভাবে কাজ করাতে চাইলে নিম্নের কোড ব্যবহার করুনঃ

// সংযোগ পরীক্ষা
if (mysqli_connect_error()) {
    die("Database সংযোগ ব্যর্থ হয়েছেঃ " . mysqli_connect_error());
}

সংযোগ বিচ্ছিন্ন

স্ক্রিপ্ট এক্সিকিউশন শেষ হওয়া মত্রাই স্বয়ংক্রিয়ভাবে সংযোগ বিচ্ছিন্ন হয়ে যায়। যাইহোক, স্ক্রিপ্ট শেষ হওয়ার পূর্বে আপনি যদি সংযোগ বিচ্ছিন্ন করতে চান তাহলে নিম্নের কোড ব্যবহার করুনঃ

MySQLi প্রসিডিউরাল(Procedural) প্রক্রিয়ায় সংযোগ বিচ্ছিন্নঃ
mysqli_close($conn);

MySQLi অব্জেক্ট-অরিয়েন্টেড প্রক্রিয়ায় সংযোগ বিচ্ছিন্নঃ
$conn->close();