Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

टेक्स्टएरिया से PHP एक्सट्रैक्ट कोड और क्वेरी में माइस्क्ल को पास करें

पहले पैटर्न के बारे में:

  • आपको किसी कैप्चर समूह की आवश्यकता नहीं है बस \K . का उपयोग करें फुलस्ट्रिंग मैच को फिर से शुरू करने के लिए।
  • मैं '[^']*' का उपयोग करूंगा आपके इनपुट स्ट्रिंग के पहले/खाली सिंगल कोटेड कंपोनेंट पर बस अगर कुछ टेक्स्ट उस स्थिति को भर देता है।

आपकी क्वेरी के बारे में:

  • यह असुरक्षित है। आपको सुरक्षा उद्देश्यों के लिए उपयोगकर्ता द्वारा सबमिट किए गए डेटा को सीधे क्वेरी में सम्मिलित नहीं करना चाहिए।
  • यहां ? प्लेसहोल्डर्स का उपयोग किया जाता है।
  • चूंकि प्लेसहोल्डर्स/पैराम्स-टू-बी-बाउंड परिवर्तनशील हैं, call_user_func_array() का कनवल्शन आवश्यक है।
  • मैंने bind_result() भी लागू किया है परिणामसेट के प्रसंस्करण में सहायता करने के लिए।

परीक्षण न किया गया कोड:

$_POST['newfeatured']="new myProduct('', 'bbc_609'),
new myProduct('', '35857'),";

if(preg_match_all("/new (?:my|featured)Product\('[^']*', '\K[^']*/",$_POST['newfeatured'],$prd_ids)){
    $params=$prd_ids[0];  // the fullstring matches
    $count=count($params);  // number of fullstring matches
    $csph=implode(',',array_fill(0,$count,'?'));  // comma-separated placeholders

    $query="SELECT A.productid, A.name, A.brand, B.code
            FROM product A
            INNER JOIN price B ON A.productid=B.productid
            WHERE A.productid IN ($csph);";

    $stmt=$mysqli->prepare($query);  // for security reasons

    array_unshift($params,str_repeat('s',$count));  // prepend the type values string
    $ref=[];  // add references
    foreach($params as $i=>$v){
        $ref[$i]=&$params[$i];  // pass by reference as required/advised by the manual
    }
    call_user_func_array([$stmt,'bind_param'],$ref);    

    $stmt->execute();
    $stmt->bind_result($id,$name,$brand,$code);
    while($stmt->fetch()){
        echo "Whatever you want to do with the results: $id, $name, $brand, $code\n";
    }
    $stmt->close();
}else{
    echo "bonk";
}



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. अपरिवर्तनीय नाम 'MySql.Data.MySqlClient' के साथ ADO.NET प्रदाता या तो मशीन या एप्लिकेशन कॉन्फ़िगरेशन फ़ाइल में पंजीकृत नहीं है

  2. जावा ईई एप्लिकेशन में डेटाबेस कनेक्शन रिसाव की जांच कैसे करें?

  3. Mysql वर्तमान उपयोगकर्ता पोस्ट प्राप्त करने के लिए क्वेरी का चयन करें और मित्र पोस्ट का अनुसरण करें

  4. अपडेट कैस्केड का उपयोग करके हाइबरनेट सॉफ्ट डिलीट

  5. mysql अद्वितीय शब्द मिलान की मात्रा के अनुसार क्रमबद्ध करें