পিএইচপি ৫ এবং এর পরবর্তী যেকোনো ভার্সন নিম্নোক্ত এক্সটেনশন গুলোর মাধ্যমে 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 প্রসিডিউরাল এবং অবজেক্ট অরিয়েন্টেড উভয় প্রক্রিয়ায় সংযোগ তৈরি করে দেখানো হলোঃ
kt_satt_skill_example_id=413
kt_satt_skill_example_id=414
উপরের অব্জেক্ট-অরিয়েন্টেড উদাহরনের
$conn->connect_errorপ্রোপার্টিটি শুধুমাত্রে পিএইচপি ৫.২.৯ এবং ৫.৩.০ ভার্সনে ঠিকমত কাজ করে। এর পুর্বের ভার্সন গুলোতে সঠিকভাবে কাজ করাতে চাইলে নিম্নের কোড ব্যবহার করুনঃ
kt_satt_skill_example_id=415
সংযোগ বিচ্ছিন্ন
স্ক্রিপ্ট এক্সিকিউশন শেষ হওয়া মত্রাই স্বয়ংক্রিয়ভাবে সংযোগ বিচ্ছিন্ন হয়ে যায়। যাইহোক, স্ক্রিপ্ট শেষ হওয়ার পূর্বে আপনি যদি সংযোগ বিচ্ছিন্ন করতে চান তাহলে নিম্নের কোড ব্যবহার করুনঃ
kt_satt_skill_example_id=417
MySQLi অব্জেক্ট-অরিয়েন্টেড প্রক্রিয়ায় সংযোগ বিচ্ছিন্নঃ
kt_satt_skill_example_id=418
Read more