2012-06-17 14 views
13

मैं कैसे इन प्रश्नों लिखा जाना चाहिए पर कई उदाहरण पढ़ा है, लेकिन मैं इस विशिष्ट पाने के लिए संघर्ष कर रहा हूँ जब bindParamके लिए एक MySQL पीडीओ क्वेरी

का उपयोग कर चलाने के लिए यह सही तरीका होगा bindParam में की तरह का उपयोग करना एक उपयोगकर्ता से शुरू होने वाले उपयोगकर्ता नाम से मेल खाते हैं?

$term = "a"; 
$term = "'$term%'"; 

$sql = "SELECT username 
     FROM `user` 
     WHERE username LIKE :term 
     LIMIT 10";  

$core = Connect::getInstance(); 

$stmt = $core->dbh->prepare($sql); 
$stmt->bindParam(':term', $term, PDO::PARAM_STR); 
$stmt->execute(); 
$data = $stmt->fetchAll(); 

उत्तर

21

नहीं, आप तो बस $term = "$term%";

बयान अब आप चला रहे हैं की कोशिश करेंगे 'a%'a% के बजाय मैच के लिए भीतरी एकल उद्धरण की जरूरत नहीं है

bindParam सुनिश्चित करें कि सभी कर देगा SQL कथन को दिए जाने पर स्ट्रिंग डेटा स्वचालित रूप से ठीक से उद्धृत किया जाता है।

+0

यहां एक नमूना कोड है: https://gist.github.com/arsho/a203e7bc156ea566587361a76038f020 – arsho

संबंधित मुद्दे