ব্যাকটিকগুলি টেবিল এবং কলাম শনাক্তকারীদের জন্য ব্যবহার করতে হয়, তবে কেবল তখনই প্রয়োজন হয় যখন সনাক্তকারী একটি মাইএসকিউএল সংরক্ষিত কীওয়ার্ড হয় বা যখন সনাক্তকারীটিতে সীমাবদ্ধ সেটের বাইরে সাদা বর্ণচিহ্ন বা অক্ষর থাকে (নীচে দেখুন) প্রায়শই সংরক্ষিত কীওয়ার্ডগুলি ব্যবহার এড়াতে বাঞ্ছনীয় কলাম বা টেবিল শনাক্তকারী হিসাবে যখন সম্ভব, উদ্ধৃতি ইস্যু এড়ানো।
VALUES()
তালিকার মতো স্ট্রিং মানগুলির জন্য একক উদ্ধৃতি ব্যবহার করা উচিত । স্ট্রিং মানগুলির জন্য ডাবল উদ্ধৃতিগুলি মাইএসকিউএল দ্বারা সমর্থিত, তবে একক উদ্ধৃতিগুলি অন্যান্য আরডিবিএমএস দ্বারা আরও ব্যাপকভাবে গৃহীত হয়, তাই ডাবলের পরিবর্তে একক উদ্ধৃতি ব্যবহার করা ভাল অভ্যাস।
মাইএসকিউএলও আশা করে DATE
এবং DATETIME
আক্ষরিক মানগুলির মতো স্ট্রিং হিসাবে একক-উদ্ধৃত হবে '2001-01-01 00:00:00'
। তারিখের স্ট্রিংগুলিতে বিভাগটি ডিলিমিটার হিসাবে হাইফেন ব্যবহারের বিশেষ বিকল্পগুলিতে, আরও বিশদে বিশদগুলির জন্য ডেট এবং টাইম লিটারালস ডকুমেন্টেশনের সাথে পরামর্শ করুন-
।
সুতরাং আপনার উদাহরণ ব্যবহার করে, আমি পিএইচপি স্ট্রিংয়ের ডাবল-উদ্ধৃতি করব এবং মানগুলিতে একক উদ্ধৃতি ব্যবহার করব 'val1', 'val2'
। NULL
একটি মাইএসকিউএল কীওয়ার্ড এবং একটি বিশেষ (অ) মূল্যবান এবং তাই অব্যক্ত।
এই সারণী বা কলাম শনাক্তকারীদের কোনওটিই সংরক্ষিত শব্দ নয় বা উদ্ধৃতিগুলির জন্য প্রয়োজনীয় অক্ষরগুলি ব্যবহার করবেন না, তবে আমি সেগুলি ব্যাকটিক্স (যাইহোক আরও পরে ...) দিয়ে উদ্ধৃত করেছি।
আরডিবিএমএসের স্থানীয় ফাংশনগুলির (উদাহরণস্বরূপ, NOW()
মাইএসকিউএল) উদ্ধৃতি দেওয়া উচিত নয়, যদিও তাদের যুক্তিগুলি ইতিমধ্যে উল্লিখিত একই স্ট্রিং বা সনাক্তকারী উদ্ধৃতি বিধি সাপেক্ষে।
ব্যাকটিক (`)
টেবিল ও কলাম ───────┬─────┬──┬──┬──┬────┬──┬────┬──┬────┬──┬ ───────┐
↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
$ ক্যোয়ারী = " IN টেবিল` T অন্তর্ভুক্ত করুন (` আইডি, `কল 1`,` কল 2`, `ডেট`,` আপডেট`)
ভ্যালু (নাল, 'ভাল 1', 'ভাল 2', '2001-01-01', এখন ()) ";
↑↑↑↑↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑↑↑↑↑ ↑↑↑↑↑
উদ্ধৃত কীওয়ার্ড ─────┴┴┴┘ │ │ │ │ │ │ │││││
একক-উদ্ধৃত (') স্ট্রিং ───────────┴────┴──┴────┘ │ │ │││││ │││││
একক-উদ্ধৃত (') তারিখ ───────────────────────────┴──────────┘ ││││ ││││ │
উদ্ধৃত ফাংশন ─────────────────────────────────────────┴┴┴┴┘
পরিবর্তনশীল দ্বিখণ্ডন
ভেরিয়েবলের জন্য উদ্ধৃতি নিদর্শনগুলি পরিবর্তন হয় না, যদিও আপনি যদি সরাসরি কোনও স্ট্রিংয়ে ভেরিয়েবলগুলি ইন্টারপোল্ট করতে চান তবে এটি পিএইচপি-তে অবশ্যই ডাবল-কোটেড হওয়া উচিত। এসকিউএল-তে ব্যবহারের জন্য আপনি ভেরিয়েবলগুলি সঠিকভাবে এড়িয়ে গেছেন তা নিশ্চিত করুন। ( পরিবর্তে এসকিউএল ইনজেকশনের বিরুদ্ধে সুরক্ষার হিসাবে প্রস্তুত একটি বিবৃতি সমর্থনকারী একটি API ব্যবহার করার পরামর্শ দেওয়া হয় )।
// কিছু পরিবর্তনশীল প্রতিস্থাপনের সাথে একই জিনিস
// এখানে, একটি চলক টেবিলের নাম $ টেবিলটি ব্যাকটিক-কোটেড এবং ভেরিয়েবল
VALUES তালিকায় // একক-উদ্ধৃত হয়
$ ক্যোয়ারী = " $ $ টেবিল` এর মধ্যে অন্তর্ভুক্ত করুন (` আইডি, `কল 1`,` কল 2, `তারিখ) ভ্যালু (নাল, '$ ভাল 1' , '$ ভাল 2' , '$ তারিখ' )";
বিবৃতি প্রস্তুত
প্রস্তুত বিবৃতি দিয়ে কাজ করার সময়, বিবৃতিটির স্থানধারীদের উদ্ধৃতি দিতে হবে কিনা তা নির্ধারণ করতে ডকুমেন্টেশনের সাথে পরামর্শ করুন। পিএইচপি, পিডিও এবং মাইএসকিউএলআই-এ উপলব্ধ সর্বাধিক জনপ্রিয় এপিআই , অন্য ভাষায় সর্বাধিক প্রস্তুত স্টেটমেন্ট এপিআইয়ের মতো অপ্রকাশিত স্থানধারীদের প্রত্যাশা করে:
// PDO example with named parameters, unquoted
$query = "INSERT INTO `table` (`id`, `col1`, `col2`, `date`) VALUES (:id, :col1, :col2, :date)";
// MySQLi example with ? parameters, unquoted
$query = "INSERT INTO `table` (`id`, `col1`, `col2`, `date`) VALUES (?, ?, ?, ?)";
সনাক্তকারীগুলিতে ব্যাকটিকের উদ্ধৃতি দেওয়ার অক্ষর:
মাইএসকিউএল ডকুমেন্টেশন অনুযায়ী আপনার নীচের অক্ষর সেটটি ব্যবহার করে (ব্যাকটিক) সনাক্তকারীদের উদ্ধৃতি দেওয়ার দরকার নেই:
এএসসিআইআই: [0-9,a-z,A-Z$_]
(মৌলিক লাতিন অক্ষর, সংখ্যা 0-9, ডলার, আন্ডারস্কোর)
আপনি উদাহরণস্বরূপ সাদা স্থান সহ টেবিল বা কলাম শনাক্তকারী হিসাবে সেটের বাইরে অক্ষরগুলি ব্যবহার করতে পারেন, তবে তারপরে আপনাকে সেগুলি উদ্ধৃত করতে হবে (ব্যাকটিক)।
"tablename"
, এবং একক উদ্ধৃতিগুলি আক্ষরিক জন্য, যেমন'this is a some text'
। ব্যাক-টিকগুলি কখনও স্ট্যান্ডার্ড এসকিউএল ব্যবহার করা হয় না। (যদি আপনাকে কোনও শনাক্তকারীতে ডাবল উক্তি অন্তর্ভুক্ত করতে হয় তবে এটি দ্বিগুণ টাইপ করুন"odd""tablename"
Similarly একইভাবে,'Conan O''Brien'