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

MySQLi ने डायनेमिक अपडेट क्वेरी के साथ स्टेटमेंट तैयार किया

चाल एक सरणी बनाने के लिए है जिसमें पैरामीटर शामिल हैं जिन्हें आप बांधना चाहते हैं, फिर call_user_func_array की सहायता से , आप इस सरणी को bind_param . पर पास कर सकते हैं ।

देखें http://www.php.net/ मैन्युअल/en/function.call-user-func-array.php call_user_func_array . पर विवरण के लिए ।

आपका कोड कुछ इस तरह हो सकता है:

    $para_type="";
    /* $para is the array that later passed into bind_param */
    $para=array($para_type);
    $query = 'UPDATE tickets SET ';

    IF(count($data) != 0) {
        /* Looping all values */

        foreach($data as $k=>$d) {
            $query .= '`'.$d['field'].'` = ? ,';

            $para_type .=$d['type'];

            $para[] = &$data[$k]['value'];
        }

        /* removing last comma */
        $query[(strlen($query)-2)] = '';

        /* adding where */
        $query .= ' WHERE `ticket_id` = ?';
        $para_type .= 'i';
        $para[]=&$ticket_id;

        call_user_func_array(array($stmt, 'bind_param'), $para);

        return true;
    }

& पर ध्यान दें सभी मापदंडों के सामने, यह bind_param . द्वारा आवश्यक है ।

एक और तरीका जो मुझे लगता है कि पीडीओ का उपयोग करना बेहतर है। यह नामित पैरामीटर लेता है और वृद्धिशील बाँध कर सकता है।




  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 का उपयोग करके दो अल्पविराम से अलग स्ट्रिंग सूचियों की तुलना कैसे करें

  2. सीडीबीकनेक्शन डीबी कनेक्शन खोलने में विफल रहा:वाईआई में ड्राइवर नहीं मिल सका

  3. MySQL स्कीमा आकार

  4. PHP - नेस्टेड mysql_fetch_array () के साथ समस्या मुझे पागल कर रही है

  5. उपयोगकर्ता प्रश्नों की गणना कैसे करें?