প্রদত্ত যে PDO- র জন্য সবচেয়ে প্রস্তাবিত ত্রুটি মোড ERRMODE_EXCEPTION
, কোনও সরাসরি execute()
ফলাফল যাচাইকরণ কাজ করবে না । কোড এক্সিকিউশন এমনকি অন্যান্য উত্তরে প্রদত্ত শর্তে পৌঁছাবে না।
সুতরাং, পিডিওতে ক্যোয়ারি এক্সিকিউশন ফলাফলটি পরিচালনা করার জন্য তিনটি সম্ভাব্য পরিস্থিতি রয়েছে:
- সাফল্যটি বলতে, কোনও যাচাইকরণের দরকার নেই। আপনার প্রোগ্রামের প্রবাহ কেবল রাখুন।
- অপ্রত্যাশিত ত্রুটিটি পরিচালনা করতে, একই সাথে রাখুন - তাত্ক্ষণিকভাবে কোনও হ্যান্ডলিং কোডের প্রয়োজন নেই। একটি ডাটাবেস ত্রুটির ক্ষেত্রে একটি ব্যতিক্রম ছুঁড়ে দেওয়া হবে এবং এটি সাইট-প্রশস্ত ত্রুটি হ্যান্ডলারের উপর বুদবুদ হবে যা পরিণামে একটি সাধারণ 500 ত্রুটি পৃষ্ঠাতে দেখা দেবে will
- ডুপ্লিকেট প্রাইমারি কী এর মতো প্রত্যাশিত ত্রুটিটি হ্যান্ডেল করতে এবং যদি এই নির্দিষ্ট ত্রুটিটি পরিচালনা করতে আপনার কাছে একটি নির্দিষ্ট দৃশ্য থাকে তবে
try..catch
অপারেটরটি ব্যবহার করুন ।
একজন নিয়মিত পিএইচপি ব্যবহারকারীর জন্য এটি কিছুটা এলিয়েন শোনাচ্ছে - কীভাবে, অপারেশনের প্রত্যক্ষ ফলাফল যাচাই না করে? - তবে ব্যতিক্রমগুলি ঠিক এভাবেই কাজ করে - আপনি অন্য কোথাও ত্রুটিটি পরীক্ষা করে দেখেন। সবার জন্য. অত্যন্ত সুবিধাজনক।
সুতরাং, সংক্ষেপে: একটি নিয়মিত কোডে আপনার কোনও হ্যান্ডল করার কোনও প্রয়োজন নেই। আপনার কোডটি ঠিক তেমন রাখুন:
$stmt->bindParam(':field1', $field1, PDO::PARAM_STR);
$stmt->bindParam(':field2', $field2, PDO::PARAM_STR);
$stmt->execute();
echo "Success!";
সাফল্যের সাথে এটি আপনাকে তাই বলে দেবে, ত্রুটিতে এটি আপনাকে নিয়মিত ত্রুটি পৃষ্ঠাটি দেখাবে যা আপনার অ্যাপ্লিকেশনটি এই জাতীয় অনুষ্ঠানের জন্য প্রদর্শিত হচ্ছে।
কেবলমাত্র যদি ত্রুটিটি রিপোর্ট করা ব্যতীত আপনার কোনও হ্যান্ডলিংয়ের পরিস্থিতি থাকে তবে কোনও try..catch
অপারেটরে আপনার sertোকানো বিবৃতি রাখুন , এটি আপনি প্রত্যাশা করেছিলেন যে ত্রুটি ছিল কিনা তা পরীক্ষা করে তা পরিচালনা করে; বা - যদি ত্রুটিটি অন্যরকম ছিল - সাইট-ওয়াইড ত্রুটি হ্যান্ডলারটি নিয়মিতভাবে পরিচালনা করা সম্ভব করার জন্য, ব্যতিক্রমটি আবার ছুঁড়ে দিন। নীচে PDO- র সাথে ত্রুটি পরিচালনা করার বিষয়ে আমার নিবন্ধের উদাহরণ কোডটি রয়েছে :
try {
$pdo->prepare("INSERT INTO users VALUES (NULL,?,?,?,?)")->execute($data);
} catch (PDOException $e) {
if ($e->getCode() == 1062) {
} else {
throw $e;
}
}
echo "Success!";
উপরের কোডে আমরা কিছু ব্যবস্থা নেওয়ার জন্য নির্দিষ্ট ত্রুটির জন্য যাচাই করছি এবং অন্য কোনও ত্রুটির জন্য ব্যতিক্রমটিকে পুনরায় নিক্ষেপ করছি (উদাহরণস্বরূপ কোনও টেবিল নেই) যা প্রোগ্রামারকে জানানো হবে।
আবার যখন - কেবল কোনও ব্যবহারকারীকে কিছু বলার জন্য "আপনার সন্নিবেশ সফল হয়েছিল" কোনও শর্তের প্রয়োজন নেই।