মাইএসকিউএল ডকুমেন্টেশন বলছেন যে এটা করা উচিত \'
। তবে স্কাইট এবং মাইএসকিএল উভয়ই এটি ''
কাজ করে। আমি এটি দেখেছি এবং এটি কাজ করে। আমার কি করা উচিৎ?
\'
মাইএসকিউএল সুনির্দিষ্ট যখন ''
এএনএসআই এসকিউএল অনুগত তবে যদি আমি ভুল না করি
মাইএসকিউএল ডকুমেন্টেশন বলছেন যে এটা করা উচিত \'
। তবে স্কাইট এবং মাইএসকিএল উভয়ই এটি ''
কাজ করে। আমি এটি দেখেছি এবং এটি কাজ করে। আমার কি করা উচিৎ?
\'
মাইএসকিউএল সুনির্দিষ্ট যখন ''
এএনএসআই এসকিউএল অনুগত তবে যদি আমি ভুল না করি
উত্তর:
আপনি যে মাইএসকিউএল ডকুমেন্টেশনটি উদ্ধৃত করেছেন তা আপনি উল্লেখ করার চেয়ে কিছুটা বেশি বলেছেন। এটি আরও বলে,
একটি "
'
" সাথে উদ্ধৃত একটি স্ট্রিংয়ের ভিতরে "'
" হিসাবে লেখা যেতে পারে''
।
(এছাড়াও, আপনি লিঙ্ক ছক 8.1 এর মাইএসকিউএল 5.0 সংস্করণ। বিশেষ অক্ষর এস্কেপ সিকোয়েন্স , এবং বর্তমান সংস্করণটি 5.6 - কিন্তু বর্তমান ছক 8.1। বিশেষ অক্ষর এস্কেপ সিকোয়েন্স সৌন্দর্য চমত্কার অনুরূপ।)
আমি মনে করি প্যারামিটারে পোস্টগ্রাস নোটটিbackslash_quote (string)
তথ্যবহুল:
\'
কোনও স্ট্রোল আক্ষরিক দ্বারা একটি উদ্ধৃতি চিহ্নটি উপস্থাপন করা যায় কিনা তা এটি নিয়ন্ত্রণ করে । কোট চিহ্নটি উপস্থাপনের জন্য পছন্দের, এসকিউএল-স্ট্যান্ডার্ড উপায় হ'ল দ্বিগুণ করে (''
) তবে পোস্টগ্রিসকিউএল historতিহাসিকভাবেও গ্রহণ করেছে\'
। তবে, এর ব্যবহার\'
সুরক্ষা ঝুঁকি তৈরি করে ...
এটি আমাকে বলে যে একক-উদ্ধৃতি থেকে বাঁচতে ব্যাকস্ল্যাশ ব্যবহার করার চেয়ে দ্বিগুণ একক-উদ্ধৃতি চরিত্রটি ব্যবহার করা একটি সর্বোত্তম এবং দীর্ঘমেয়াদী পছন্দ।
এখন আপনি যদি ভাষা পছন্দ, এসকিউএল ডাটাবেস এবং এর মানহীন প্রশ্নগুলির পছন্দ এবং সমীকরণের জন্য ক্যোয়ারী ফ্রেমওয়ার্কের পছন্দ যুক্ত করতে চান, তবে আপনি অন্য পছন্দ দিয়ে শেষ করতে পারেন। আপনি নিজের সীমাবদ্ধতা সম্পর্কে খুব বেশি তথ্য দেন না।
স্ট্যান্ডার্ড এসকিউএল ডাবল-আপ কোট ব্যবহার করে; মাইএসকিউএলকে যুক্তিসঙ্গতভাবে মেনে চলতে হবে accept
'He said, "Don''t!"'
'
" দিয়ে উদ্ধৃত একটি স্ট্রিংয়ের ভিতরে " '
" "লেখা যেতে পারে ''
" । একটি " "
" সাথে উদ্ধৃত একটি স্ট্রিংয়ের ভিতরে " "
" হিসাবে লেখা যেতে পারে ""
। একটি পালানোর চরিত্রের দ্বারা উদ্ধৃতি চরিত্রের আগে ("` `")।
আমি বিশ্বাস করি যে ব্যবহারকারী 2087510 এর অর্থ হ'ল:
name = 'something'
name = name.replace("'", "\\'")
আমি এটি সাফল্যের সাথেও ব্যবহার করেছি।
এখানে একটি উদাহরণ:
SELECT * FROM pubs WHERE name LIKE "%John's%"
একক উদ্ধৃতি আবদ্ধ করতে কেবল ডাবল উদ্ধৃতি ব্যবহার করুন।
যদি আপনি একক উদ্ধৃতি (এবং চরিত্রটি থেকে বাঁচার প্রয়োজনীয়তা) ব্যবহার করতে জেদ করেন:
SELECT * FROM pubs WHERE name LIKE '%John\'s%'
আমি তিনটি উপায় অবগত। প্রথমটি সবচেয়ে সুন্দর নয় এবং দ্বিতীয়টি বেশিরভাগ প্রোগ্রামিং ভাষায় সাধারণ উপায়:
'I mustn''t sin!'
\
একক উদ্ধৃতির আগে পলায়ন চরিত্রটি ব্যবহার করুন '
:'I mustn\'t sin!'
"I mustn't sin!"
\'
হ'ল এটি যেমন অনেক প্রোগ্রামিং ভাষা ব্যবহার করে তবে ''
আরও এসকিউএল উপভাষা দ্বারা সমর্থন করা হয়, সুতরাং সামঞ্জস্যতার জন্য বিকল্প 1 ব্যবহার করা আরও ভাল। উদাহরণস্বরূপ স্ক্লাইটটি ব্যাকস্ল্যাশ পলায়নের সাথে কাজ করে না।
স্ট্রিং প্রতিস্থাপন করুন
value = value.replace(/'/g, "\\'");
যেখানে মান আপনার স্ট্রিং যা আপনার ডাটাবেসে সংরক্ষণ করতে চলেছে।
উপরন্তু,
এর জন্য এনপিএম প্যাকেজ, আপনি এটি দেখতে পারেন
আমি মনে করি আপনার যদি অ্যাস্টোস্ট্রোফের সাথে কোনও ডেটা পয়েন্ট থাকে তবে আপনি এস্ট্রোস্ট্রোফের আগে একটি অ্যাডাস্ট্রোফ যুক্ত করতে পারেন
যেমন। 'এটাই জনের জায়গা'
এখানে এমওয়াইএসকিউএল দুটি বাক্য ধরে নিয়েছে 'এটি হ'ল জন'র স্থান'
আপনি 'এটি হ'ল জন'র স্থান' রাখতে পারেন। আমি মনে করি এটি সেভাবে কাজ করা উচিত।
পিএইচপি-তে আমি mysqli_real_escape_string () ব্যবহার করতে পছন্দ করি যা এসকিউএল স্টেটমেন্টে ব্যবহারের জন্য একটি স্ট্রিংয়ে বিশেষ অক্ষরগুলি ছাড়িয়ে যায়।
দেখতে https://www.php.net/manual/en/mysqli.real-escape-string.php
সম্ভবত অফ-টপিক, তবে সম্ভবত আপনি এখানে এইচটিএমএল ফর্ম থেকে পাঠ্য ইনপুট স্যানিটাইজ করার একটি উপায় সন্ধান করতে এসেছেন, যাতে কোনও ব্যবহারকারী যখন এসিকিউএল-এ লেখার চেষ্টা করে তখন কোনও ত্রুটি ছুঁড়ে না ফেলে একটি ডিবি ভিত্তিক টেবিল। এটি করার কয়েকটি উপায় রয়েছে এবং আপনি এসকিউএল ইঞ্জেকশন সম্পর্কেও পড়তে চাইতে পারেন, তবে পিএইচপি-র একটি সহজ বিকল্প হল এইচটিএমএল স্পেশালচার্স () ফাংশনটি ব্যবহার করা '
যা আপনার সমস্ত এস্ট্রোফেসকে রূপান্তরিত করবে যা সম্ভবত আপনি সংরক্ষণ করতে চান যাহাই হউক না কেন।
''
বা\'
সঠিক সম্পর্কে কথা বলছেন ?