ড্রুপাল 7 ডিবি_সিলিট () এর শর্তসাপেক্ষে এসকিউএল ফাংশন ব্যবহার করা


9

আমি একটি এসকিউএল যেখানে শর্তে একটি শর্ত লেখার চেষ্টা করছি যা কলামের তুলনাকে একটি ভেরিয়েবলের সাথে ছোট হাতের তুলনায় তুলনা করতে বাধ্য করে। তবে অ্যাডএক্সপ্রেস ফাংশনটি এটি সম্পাদন করছে না (যেহেতু এটি ক্ষেত্র নির্বাচনের ক্ষেত্রে এক্সপ্রেশনটি রাখছে, যেখানে ধারাটি নয়।

এখানে আমি চেষ্টা করেছি:

$category = 'mobile wifi';
$query = db_select('taxonomy_term_data', 'ttd')
    ->fields('ttd', array('tid'));
$query->innerJoin('taxonomy_vocabulary', 'tv', 'ttd.vid = tv.vid');
$query->addExpression("LOWER(ttd.name) = $category");
$result = $query->condition('machine_name', 'images_cat', '=')
    ->execute()
    ->fetchAssoc();

এবং এই:

$category = 'mobile wifi';
$query = db_select('taxonomy_term_data', 'ttd')
    ->fields('ttd', array('tid'));
$query->innerJoin('taxonomy_vocabulary', 'tv', 'ttd.vid = tv.vid');
$result = $query->condition('machine_name', 'images_cat', '=')
    ->condition('LOWER(ttd.name)', $category, '=')
    ->execute()
    ->fetchAssoc();

দ্বিতীয়টিটি অবৈধ হয়ে যায় এবং প্রথমটি আমার উপরে উল্লিখিত সমস্যার কারণ হয়। কোন চিন্তা বা পরামর্শ?

ধন্যবাদ, প্যাট্রিক

উত্তর:


15

পরিবর্তন

$query->addExpression("LOWER(ttd.name) = $category");

প্রতি

$query->where('LOWER(ttd.name) = :category', array(':category' => $category));

ওই কাজগুলো. এমনকি এটি করতে আমার কাছে ঘটেনি।
প্যাট্রিক

3

LOWER()মাইএসকিউএল ব্যবহার করা ধীর বিবেচনা করা হয়। এটিও প্রয়োজনীয় নয় কারণ LIKEড্রপালের ডেটাবেস এপিআই (ডিবিটিএনজি) ক্ষেত্রে সংবেদনশীল নয়, অন্তত যখন আপনার মাইএসকিউএল টেবিলটি * _ci কোলেশনগুলির মধ্যে একটি ব্যবহারের জন্য কনফিগার করা থাকে। একটি স্ট্যান্ডার্ড মাইএসকিউএল ইনস্টলেশন * utf8_general_ci * ব্যবহার করে এবং তাই দ্রুপাল।

সুতরাং আপনার কেবল একটি লাইক শর্ত ব্যবহার করা দরকার:

$query->condition('name', $category, 'LIKE');

বিস্তৃত ব্যাখ্যার জন্য শর্তাধীন শর্তাদি দেখুন ।

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


আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.