WHERE ক্লজটি ব্যবহার করে ক্যোয়ারিতে একটি অ্যারে পাস করা


314

আইডির একটি অ্যারে দেওয়া $galleries = array(1,2,5)আমার কাছে একটি এসকিউএল কোয়েরি থাকতে চাই যা এর WHERE ধারাটিতে অ্যারের মানগুলি ব্যবহার করে:

SELECT *
FROM galleries
WHERE id = /* values of array $galleries... eg. (1 || 2 || 5) */

মাইএসকিউএল ব্যবহার করতে কীভাবে আমি এই ক্যোয়ারী স্ট্রিংটি তৈরি করতে পারি?



5
@ ট্রান্ট এটি প্রাচীনতম (২০০৯)।
ফাবিয়ান

কোথাও নাম পছন্দ মতো টেবিলে নির্বাচন করুন ('এবিসি%' বা 'এবিডি%' বা ..)
ইউজিন জোসেফ

উত্তর:


332

হুঁশিয়ার! এই উত্তরে একটি গুরুতর এসকিউএল ইঞ্জেকশন দুর্বলতা রয়েছে। কোনও বাহ্যিক ইনপুট স্যানিটাইজড হয়েছে কিনা তা নিশ্চিত না করেই এখানে উপস্থাপিত কোড নমুনাগুলি ব্যবহার করবেন না।

$ids = join("','",$galleries);   
$sql = "SELECT * FROM galleries WHERE id IN ('$ids')";

7
সনাক্তকারীরা এখনও একটি উদ্ধৃত তালিকা, সুতরাং এটি "WHERE id IN ('1,2,3,4')" হিসাবে প্রকাশিত হয়, উদাহরণস্বরূপ। আপনাকে প্রতিটি শনাক্তকারীকে আলাদা করে উদ্ধৃত করতে হবে, না হলে বন্ধনীগুলির ভিতরে কোটগুলি খাঁজতে হবে।
রব

22
আমি কেবল এই সতর্কতাটি যুক্ত করছি যা $galleriesএই বিবৃতিটির আগে বৈধ হওয়া উচিত! প্রস্তুত বিবৃতি অ্যারে AFAIK পরিচালনা করতে পারে না, সুতরাং আপনি যদি ভেরিয়েবলকে আবদ্ধ করতে ব্যবহার করেন তবে আপনি সহজেই এখানে এসকিউএল ইঞ্জেকশনটি সম্ভব করে তুলতে পারেন।
লিমস

3
আমার মতো পিএইচপি-তে নতুনদের জন্য, কেউ আমাকে ব্যাখ্যা করতে পারে, বা আমাকে ব্যাখ্যা করতে কোনও সংস্থার দিকে নির্দেশ করতে পারে, কেন এটি ইঞ্জেকশনের ঝুঁকী এবং কীভাবে এটি প্রতিরোধের জন্য এটি সঠিকভাবে করা উচিত? এই পরবর্তী কোয়েরিটি চালুর আগেই যদি কোনও কোয়েরি থেকে আইডিগুলির তালিকা তৈরি হয় তবে তা এখনও বিপজ্জনক?
ministe2003

3
@ কল্পনা ministe2003 যদি $galleriesনিম্নলিখিত মান ছিল: array('1); SELECT password FROM users;/*')। আপনি যদি এটি স্যানিটাইজ না করেন তবে কোয়েরিটি পড়বে SELECT * FROM galleries WHERE id IN (1); SELECT password FROM users;/*)। আপনার ডাটাবেসে থাকা টেবিল ও কলামের নামগুলিতে কিছু পরিবর্তন করুন এবং সেই ক্যোয়ারীটি চেষ্টা করুন, ফলাফলগুলি দেখুন। গ্যালারীগুলির তালিকার চেয়ে আপনি নিজের ফলাফল হিসাবে পাসওয়ার্ডের একটি তালিকা পাবেন। কীভাবে ডেটা আউটপুট হয় বা স্ক্রিপ্টটি অপ্রত্যাশিত ডেটার অ্যারের সাথে কী করে, তার উপর নির্ভর করে পাবলিক ভিউতে আউটপুট পেতে পারে ... আউট।
ক্রিস বেকার 15

18
জন্য জিজ্ঞাসা করা প্রশ্ন এটি একটি পুরোপুরি বৈধ এবং একটি নিরাপদ উত্তর। যে কেউ অভিযোগ করেন এটি নিরাপদ নয় - আমি কীভাবে এমন একটি চুক্তি করব যেটাতে আমি এই নির্দিষ্ট কোডটি $galleriesপ্রশ্নের উত্তর অনুসারে সেট আপ করেছি এবং আপনি উল্লিখিত "স্কয়ার ইনজেকশন দুর্বলতা" ব্যবহার করে এটি ব্যবহার করছেন। যদি আপনি না পারেন - আপনি আমাকে ইউএসডি 200 প্রদান করুন। কীভাবে?
zerkms

307

পিডিও ব্যবহার করে: [1]

$in = join(',', array_fill(0, count($ids), '?'));
$select = <<<SQL
    SELECT *
    FROM galleries
    WHERE id IN ($in);
SQL;
$statement = $pdo->prepare($select);
$statement->execute($ids);

মাইএসকিউএলি ব্যবহার করে [২]

$in = join(',', array_fill(0, count($ids), '?'));
$select = <<<SQL
    SELECT *
    FROM galleries
    WHERE id IN ($in);
SQL;
$statement = $mysqli->prepare($select);
$statement->bind_param(str_repeat('i', count($ids)), ...$ids);
$statement->execute();
$result = $statement->get_result();

ব্যাখ্যা:

IN()প্রদত্ত তালিকায় কোনও মান বিদ্যমান কিনা তা পরীক্ষা করতে এসকিউএল অপারেটরটি ব্যবহার করুন ।

সাধারণভাবে এটি দেখতে এটি দেখতে:

expr IN (value,...)

আমরা ()আমাদের অ্যারের থেকে ভিতরে একটি ভাব প্রকাশ করতে পারি । নোট করুন যে বন্ধনীর ভিতরে কমপক্ষে একটি মান থাকতে হবে বা মাইএসকিউএল একটি ত্রুটি ফিরিয়ে দেবে; এটি আমাদের ইনপুট অ্যারে কমপক্ষে একটি মান আছে তা নিশ্চিত করার সমান। এসকিউএল ইঞ্জেকশন আক্রমণ থেকে রোধে সহায়তা করতে প্রথমে ?প্রতিটি ইনপুট আইটেমের জন্য প্যারামিটারাইজড কোয়েরি তৈরি করতে একটি তৈরি করুন। এখানে আমি ধরে নিলাম যে আপনার আইডিসহ অ্যারে বলা হয় $ids:

$in = join(',', array_fill(0, count($ids), '?'));

$select = <<<SQL
    SELECT *
    FROM galleries
    WHERE id IN ($in);
SQL;

তিনটি আইটেমের একটি ইনপুট অ্যারে দেওয়া হ'ল $select:

SELECT *
FROM galleries
WHERE id IN (?, ?, ?)

আবার নোট করুন যে ?ইনপুট অ্যারেতে প্রতিটি আইটেমের জন্য একটি রয়েছে । তারপরে আমরা পিডিও বা মাইএসকিউএলি ব্যবহার করব উপরে উল্লিখিত হিসাবে ক্যোয়ারী প্রস্তুত এবং সম্পাদন করতে।

IN()স্ট্রিং সহ অপারেটর ব্যবহার করা

আবদ্ধ পরামিতিগুলির কারণে স্ট্রিং এবং পূর্ণসংখ্যার মধ্যে পরিবর্তন করা সহজ। পিডিওর জন্য কোনও পরিবর্তনের প্রয়োজন নেই; মাইএসকিউএলআই-তে পরিবর্তন str_repeat('i',করতে str_repeat('s',যদি আপনার স্ট্রিং পরীক্ষা করতে হয়।

[1]: আমি ব্রেভিটি পরীক্ষা করার জন্য কিছু ত্রুটি বাদ দিয়েছি। প্রতিটি ডাটাবেস পদ্ধতির জন্য আপনাকে সাধারণ ত্রুটিগুলি পরীক্ষা করতে হবে (বা ব্যতিক্রম ছুঁড়ে দেওয়ার জন্য আপনার ডিবি ড্রাইভার সেট করুন)।

[2]: পিএইচপি 5.6 বা তার বেশি প্রয়োজন। আবার আমি ব্রেভিটি পরীক্ষা করার জন্য কিছু ত্রুটি বাদ দিয়েছি।


7
... ids আইডস কি করে? আমি "সিনট্যাক্স ত্রুটি, অপ্রত্যাশিত 'পেয়েছি।
মার্সেল

আমি তাদের দেখতে পাচ্ছি, আমি মাইএসকিউএলই ব্যবহার করছি এবং আমার পিএইচপি 5.6 রয়েছে
মার্সেল

1
আপনি যদি উল্লেখ করছেন $statement->bind_param(str_repeat('i', count($ids)), ...$ids);তবে ...আইডি এর অ্যারে থেকে একাধিক পরামিতিগুলিতে প্রসারিত করছে। আপনি যদি উল্লেখ করে থাকেন expr IN (value,...)তবে এর অর্থ হ'ল আরও মান যেমন WHERE id IN (1, 3, 4)। সেখানে কমপক্ষে একটি থাকা দরকার।
লেভি মরিসন

1
<<< কী ছিল তা আমি বিভ্রান্ত হয়ে পড়েছিলাম তবে আমি একটি রেফারেন্স পেয়েছি: php.net/manual/en/…
সাংগ্রেস

1
এছাড়াও, এখানে ...: wiki.php.net/rfc/argument_unpacking এর
সংঘরেস

58

আপনি ints:

$query = "SELECT * FROM `$table` WHERE `$column` IN(".implode(',',$array).")";

স্ট্রিং:

$query = "SELECT * FROM `$table` WHERE `$column` IN('".implode("','",$array)."')";

1
কেন '\' ?? দয়া করে আমাকে বলুন
zloctb

এটি আমার জন্য কাজ করছে .....
prabhakaran7

29

ধরে নিচ্ছি যে আপনি আগে থেকেই আপনার ইনপুটগুলি সঠিকভাবে স্যানিটাইজ করবেন ...

$matches = implode(',', $galleries);

তারপরে আপনার প্রশ্নটি সামঞ্জস্য করুন:

SELECT *
FROM galleries
WHERE id IN ( $matches ) 

আপনার ডেটাসেটের উপর নির্ভর করে উদ্ধৃত মানগুলি যথাযথ।


আপনি যা প্রস্তাব করছেন তা চেষ্টা করেছিলাম তবে এটি প্রথম মূল মানটি পেয়েছে। আমি জানি এটির কোনও অর্থ নেই, তবে আমি যদি ব্যবহারকারীর ৪৪২ do5৮ উদাহরণ ব্যবহার করে এটি করি তবে জঘন্য জিনিসটি কাজ করে।
স্যামুয়েল রমজান

12

ব্যবহার করুন:

select id from galleries where id in (1, 2, 5);

একটি সাধারণ for eachলুপ কাজ করবে।

ফ্ল্যাভিয়াস / অবতারকাভার উপায় ভাল তবে নিশ্চিত হয়ে নিন যে অ্যারের মানগুলির মধ্যে কোনওটিতে কমা নেই।



7

একটি এস্কেপ ফাংশন সহ মাইএসকিউএলির জন্য :

$ids = array_map(function($a) use($mysqli) { 
    return is_string($a) ? "'".$mysqli->real_escape_string($a)."'" : $a;
  }, $ids);
$ids = join(',', $ids);  
$result = $mysqli->query("SELECT * FROM galleries WHERE id IN ($ids)");

প্রস্তুত বিবৃতি সহ পিডিওর জন্য:

$qmarks = implode(',', array_fill(0, count($ids), '?'));
$sth = $dbh->prepare("SELECT * FROM galleries WHERE id IN ($qmarks)");
$sth->execute($ids);

এটি দুর্দান্ত, সংক্ষিপ্ত এবং কোড সন্নিবেশ দুর্বলতা এড়ানো! +1
স্টিফান রিখটার

মাইএসকিউলি বিবৃতিও প্রস্তুত করেছেন। আপনার ইনপুটটি এড়িয়ে চলবেন না, এটি সম্ভবত এসকিউএল ইঞ্জেকশনের পক্ষে ঝুঁকির মধ্যে রয়েছে।
ধর্মান

6

আমাদের এসকিউএল ইঞ্জেকশন দুর্বলতা এবং একটি খালি শর্তের যত্ন নেওয়া উচিত । আমি নীচের মত উভয় পরিচালনা করতে যাচ্ছি।

একটি বিশুদ্ধ সাংখ্যিক অ্যারের জন্য উপযুক্ত টাইপ রূপান্তর যেমন ব্যবহার intvalবা floatvalবা doublevalপ্রতিটি উপাদান বেশী। স্ট্রিং প্রকারের জন্য mysqli_real_escape_string()যা আপনি যদি চান তবে সংখ্যার মানগুলিতেও প্রয়োগ করা যেতে পারে to মাইএসকিউএল স্ট্রিং হিসাবে সংখ্যার পাশাপাশি তারিখের রূপের অনুমতি দেয়

কোয়েরিতে যাওয়ার আগে মানগুলি যথাযথভাবে পালাতে, এর মতো একটি ফাংশন তৈরি করুন:

function escape($string)
{
    // Assuming $db is a link identifier returned by mysqli_connect() or mysqli_init()
    return mysqli_real_escape_string($db, $string);
}

এই জাতীয় ফাংশন সম্ভবত আপনার অ্যাপ্লিকেশনটিতে ইতিমধ্যে আপনার কাছে উপলভ্য হবে বা সম্ভবত আপনি ইতিমধ্যে একটি তৈরি করেছেন।

স্ট্রিং অ্যারে স্যানিটাইজ করুন:

$values = array_map('escape', $gallaries);

একটি সাংখ্যিক অ্যারে ব্যবহার sanitized করা যেতে পারে intvalবা floatvalবা doublevalপরিবর্তে উপযুক্ত হিসাবে:

$values = array_map('intval', $gallaries);

তারপরে অবশেষে ক্যোয়ারির শর্তটি তৈরি করুন

$where  = count($values) ? "`id` = '" . implode("' OR `id` = '", $values) . "'" : 0;

অথবা

$where  = count($values) ? "`id` IN ('" . implode("', '", $values) . "')" : 0;

যেহেতু অ্যারে কখনও কখনও খালিও হতে পারে, যেমন $galleries = array();আমাদের তাই খেয়াল করা উচিত যা IN ()খালি তালিকার জন্য অনুমতি দেয় না। এর ORপরিবর্তে কেউ ব্যবহার করতে পারে তবে সমস্যাটি রয়ে গেছে। সুতরাং উপরের চেকটি count($values)হ'ল এটি নিশ্চিত করা।

এবং এটি চূড়ান্ত ক্যোয়ারিতে যুক্ত করুন:

$query  = 'SELECT * FROM `galleries` WHERE ' . $where;

টিপ : আপনি যদি এর পরিবর্তে সব সারি গোপন কোন খালি অ্যারে ক্ষেত্রে সকল রেকর্ড (কোন ফিল্টারিং) দেখাতে চান তবে কেবল প্রতিস্থাপন 0 সঙ্গে 1 তিন মিথ্যা অংশে।


আমার সমাধানটিকে ওয়ান-লাইনার (এবং$query = 'SELECT * FROM galleries WHERE ' . (count($gallaries) ? "id IN ('" . implode("', '", array_map('escape', $gallaries)) . "')" : 0);
কুরুচিপূর্ণ

5

নিরাপদ।

$galleries = array(1,2,5);
array_walk($galleries , 'intval');
$ids = implode(',', $galleries);
$sql = "SELECT * FROM galleries WHERE id IN ($ids)";

5

পিএইচপি-র জন্য কর্নেল শ্র্যাপেলের SafeMySQL লাইব্রেরিটি তার প্যারাম্যাট্রিসযুক্ত ক্যোয়ারিতে টাইপ- ইঙ্গিতযুক্ত স্থানধারক সরবরাহ করে এবং অ্যারেগুলির সাথে কাজ করার জন্য বেশ কয়েকটি সুবিধাজনক স্থানধারককে অন্তর্ভুক্ত করে। দ্য?aস্থানধারক কমে যাওয়া বিচ্ছিন্ন পাতার স্ট্রিংয়ের তালিকাতে একটি অ্যারের প্রসারিত করে।

উদাহরণ স্বরূপ:

$someArray = [1, 2, 5];
$galleries = $db->getAll("SELECT * FROM galleries WHERE id IN (?a)", $someArray);

* নোট করুন যেহেতু মাইএসকিউএল স্বয়ংক্রিয় প্রকারের জবরদস্তি সম্পাদন করে, সেফ মাইএসকিউএসএল উপরের আইডিগুলিকে স্ট্রিংগুলিতে রূপান্তরিত করবে - তাতে আপনি এখনও সঠিক ফলাফল পাবেন doesn't


4

আমরা যদি ইনপুট অ্যারেটি সঠিকভাবে ফিল্টার করি তবে আমরা এই "WHERE id IN" ধারাটি ব্যবহার করতে পারি। এটার মতো কিছু:

$galleries = array();

foreach ($_REQUEST['gallery_id'] as $key => $val) {
    $galleries[$key] = filter_var($val, FILTER_SANITIZE_NUMBER_INT);
}

নীচের উদাহরণ মত:এখানে চিত্র বর্ণনা লিখুন

$galleryIds = implode(',', $galleries);

অর্থাৎ এখন আপনার নিরাপদে ব্যবহার করা উচিত $query = "SELECT * FROM galleries WHERE id IN ({$galleryIds})";


@ লেবি-মরিসন এটির জন্য আরও অনেক ভাল সমাধান পোস্ট করেছেন।
সুপ্রতিম রায়

4

আপনি টেবিল texts (T_ID (int), T_TEXT (text))এবং টেবিল থাকতে পারেtest (id (int), var (varchar(255)))

নীচে insert into test values (1, '1,2,3') ;সারণী পাঠ্যগুলি থেকে সারিগুলি আউটপুট দেবে যেখানে T_ID IN (1,2,3):

SELECT * FROM `texts` WHERE (SELECT FIND_IN_SET( T_ID, ( SELECT var FROM test WHERE id =1 ) ) AS tm) >0

এইভাবে আপনি কোনও অতিরিক্ত টেবিল ছাড়াই একটি সাধারণ এন 2 মি ডাটাবেস সম্পর্ক পরিচালনা করতে পারেন এবং কেবল এসকিউএল ব্যবহার করে পিএইচপি বা অন্য কোনও প্রোগ্রামিং ভাষা ব্যবহার করার প্রয়োজন নেই।


3

আরও একটি উদাহরণ:

$galleryIds = [1, '2', 'Vitruvian Man'];
$ids = array_filter($galleryIds, function($n){return (is_numeric($n));});
$ids = implode(', ', $ids);

$sql = "SELECT * FROM galleries WHERE id IN ({$ids})";
// output: 'SELECT * FROM galleries WHERE id IN (1, 2)'

$statement = $pdo->prepare($sql);
$statement->execute();

2

IN ক্যোয়ারীটি ব্যবহার করার পাশাপাশি আপনার কাছে দুটি বিকল্প রয়েছে যেমন কোনও IN ক্যোয়ারীতে এসকিউএল ইঞ্জেকশন দুর্বলতার ঝুঁকি রয়েছে। আপনি যে সঠিক তথ্য চান সেটি পেতে লুপিং ব্যবহার করতে পারেন বা ওআর ক্ষেত্রে আপনি কোয়েরিটি ব্যবহার করতে পারেন

1. SELECT *
      FROM galleries WHERE id=1 or id=2 or id=5;


2. $ids = array(1, 2, 5);
   foreach ($ids as $id) {
      $data[] = SELECT *
                    FROM galleries WHERE id= $id;
   }

2

PDO ছাড়াই নিরাপদ উপায়:

$ids = array_filter(array_unique(array_map('intval', (array)$ids)));

if ($ids) {
    $query = 'SELECT * FROM `galleries` WHERE `id` IN ('.implode(',', $ids).');';
}
  • (array)$ids$idsঅ্যারেতে ভেরিয়েবল কাস্ট করুন
  • array_map সমস্ত অ্যারের মানকে পূর্ণসংখ্যায় রূপান্তর করুন
  • array_unique পুনরাবৃত্তি মান মুছে ফেলুন
  • array_filter শূন্য মানগুলি সরান
  • implode নির্বাচনের সমস্ত মানগুলিতে যোগদান করুন

1

কারণ আসল প্রশ্নটি একটি সংখ্যার অ্যারের সাথে সম্পর্কিত এবং আমি স্ট্রিংগুলির একটি অ্যারে ব্যবহার করছি যা আমি প্রদত্ত উদাহরণগুলিকে কাজ করতে পারি না।

আমি দেখতে পেলাম যে প্রতিটি স্ট্রিংটি IN()ফাংশনটির সাথে কাজ করার জন্য একক উদ্ধৃতিতে আবশ্যক ।

এখানে আমার সমাধান

foreach($status as $status_a) {
        $status_sql[] = '\''.$status_a.'\'';
    }
    $status = implode(',',$status_sql);

$sql = mysql_query("SELECT * FROM table WHERE id IN ($status)");

যেমন আপনি দেখতে পাচ্ছেন প্রথম ফাংশনটি প্রতিটি অ্যারে ভেরিয়েবলকে মোড়ানো single quotes (\')এবং তারপরে অ্যারেটি প্রেরণ করে।

দ্রষ্টব্য: $statusএসকিউএল বিবৃতিতে একক উদ্ধৃতি নেই।

উদ্ধৃতি যুক্ত করার জন্য সম্ভবত একটি দুর্দান্ত উপায় আছে তবে এটি কার্যকর।



1
এটি ইঞ্জেকশন-অরক্ষিত।
মার্ক আমেরিকা

তারের পালা কোথায়? উদাহরণস্বরূপ 'স্ট্রিং ভিতরে? এসকিউএল ইঞ্জেকশন দুর্বল। PDO :: উদ্ধৃতি বা mysqli_real_escape_string ব্যবহার করুন।
18 সি

1

নীচে আমি যে পদ্ধতিটি ব্যবহার করেছি, অন্য ডেটার জন্য নামযুক্ত স্থানধারক সহ পিডিও ব্যবহার করছি। এসকিউএল ইঞ্জেকশনটি কাটিয়ে ওঠার জন্য আমি কেবলমাত্র মানগুলি পূর্ণসংখ্যাগুলি গ্রহণ করতে এবং অন্য সকলকে প্রত্যাখ্যান করতে অ্যারে ফিল্টার করছি।

$owner_id = 123;
$galleries = array(1,2,5,'abc');

$good_galleries = array_filter($chapter_arr, 'is_numeric');

$sql = "SELECT * FROM galleries WHERE owner=:OWNER_ID AND id IN ($good_galleries)";
$stmt = $dbh->prepare($sql);
$stmt->execute(array(
    "OWNER_ID" => $owner_id,
));

$data = $stmt->fetchAll(PDO::FETCH_ASSOC);

-3

এসকিউএল ইঞ্জেকশন প্রতিরোধের প্রাথমিক পদ্ধতিগুলি হ'ল:

  • প্রস্তুত বিবৃতি এবং প্যারামিটারাইজড কোয়েরি ব্যবহার করুন
  • আপনার অনিরাপদ ভেরিয়েবলের বিশেষ অক্ষরগুলি সজ্জিত করা

প্রস্তুত বিবৃতি এবং প্যারামিটারাইজড কোয়েরি কোয়েরি ব্যবহার করা ভাল অনুশীলন হিসাবে বিবেচিত হয়, তবে আপনি যদি পালিয়ে যাওয়া অক্ষরগুলির পদ্ধতিটি চয়ন করেন তবে নীচে আমার উদাহরণটি চেষ্টা করতে পারেন।

আপনি array_mapপ্রতিটি উপাদানগুলিতে একক উদ্ধৃতি যুক্ত করে প্রশ্নের উত্স তৈরি করতে পারেন $galleries:

$galleries = array(1,2,5);

$galleries_str = implode(', ',
                     array_map(function(&$item){
                                   return "'" .mysql_real_escape_string($item) . "'";
                               }, $galleries));

$sql = "SELECT * FROM gallery WHERE id IN (" . $galleries_str . ");";

উত্পন্ন $ বর্গ বর্গ ভেরি হবে:

SELECT * FROM gallery WHERE id IN ('1', '2', '5');

দ্রষ্টব্য: এখানে mysql_real_escape_string এর ডকুমেন্টেশনে বর্ণিত হিসাবে পিএইচপি 5.5.0 এ অবচয় করা হয়েছিল এবং এটি পিএইচপি 7.0.0 এ সরানো হয়েছিল। পরিবর্তে, MySQLi বা PDO_MySQL এক্সটেনশন ব্যবহার করা উচিত। মাইএসকিউএল আরও দেখুন: আরও তথ্যের জন্য একটি এপিআই গাইড এবং সম্পর্কিত FAQ নির্বাচন করা। এই ফাংশনের বিকল্পগুলির মধ্যে রয়েছে:

  • mysqli_real_escape_string ()

  • PDO :: উদ্ধৃতি ()


4
এটি অন্যান্য জবাবগুলির তুলনায় কেবল নতুন কিছু যোগ করে না এটি গ্রহণযোগ্য উত্তর সত্ত্বেও বছরের পর বছর ধরে এটির অধীনে এসকিউএল ইনজেকশন সম্পর্কিত সতর্কবার্তা রেখেছিল।
মার্ক আমেরিকা 17'15
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.