यह इस बात पर निर्भर करता है कि आप उन पंक्तियों को वापस करना चाहते हैं जहां नाम या शहर खोज मानों से सटीक रूप से मेल खाते हैं (=
), या पंक्तियाँ जहाँ नाम या शहर का कोई भाग खोज मानों से मिलान करें (LIKE
)।
चाहे आपको किसी की भी आवश्यकता हो, आप अपनी खोज स्ट्रिंग को इस तरह से स्ट्रिंग्स की एक सरणी में परिवर्तित करके प्रारंभ कर सकते हैं:
$strings = array_map('trim', explode(',', $searchString));
array_map('trim'...
सुनिश्चित करता है कि आप अपनी अल्पविराम से अलग की गई खोज स्ट्रिंग में अल्पविराम से पहले या बाद में किसी रिक्त स्थान का मिलान करने का प्रयास नहीं करते हैं।
पीडीओ में तैयार बयानों का उपयोग करके अपनी क्वेरी को निष्पादित करने के उदाहरण यहां दिए गए हैं। सबसे पहले, IN
. का उपयोग करके पूर्ण मिलान करें :
$phs = rtrim(str_repeat('?,', count($strings)),',');
$stmt = $pdo->prepare("SELECT * FROM your_table WHERE name IN ($phs) OR city IN ($phs)");
// double the string values to us in both INs
$values = array_merge($strings, $strings);
$stmt->execute($values);
और आंशिक मिलान LIKE
. का उपयोग करके :
$sql = '';
foreach ($strings as $string) {
$sql .= ' name LIKE ? OR city LIKE ? OR';
$values[] = $string;
$values[] = $string;
}
$stmt = $pdo->prepare('SELECT * FROM your_table WHERE' . rtrim($sql, ' OR'));
$stmt->execute($values);