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

PHP Pthreads - mysqli का उपयोग करना

समस्या यह है कि mysqli ऑब्जेक्ट एकाधिक थ्रेड में उपयोग के लिए अनुपयुक्त है, आप अपने द्वारा प्रारंभ किए गए प्रत्येक थ्रेड के लिए MySQLi का एक उदाहरण बनाना चाहते हैं, इसलिए प्रत्येक थ्रेड का एक अद्वितीय कनेक्शन होता है।

<?php
define("SQLHOST", "localhost");
define("SQLUSER", "root");
define("SQLPASS", "");
define("SQLDB",   "test");
define("SQLPORT", 3306);
define("SQLSOCK", "/var/lib/mysql/mysql.sock");

class Mine extends Thread {
    public function run() {
        try {
            $my = new mysqli(SQLHOST, SQLUSER, SQLPASS, SQLDB, SQLPORT, SQLSOCK);
            if ($my) {
                $result = $my->query("SHOW DATABASES;");

                if (is_object($result)) {
                    while (($row = $result->fetch_assoc())) {
                        var_dump($row);
                    }
                }
            }
        } catch(Exception $ex) {
            var_dump($ex);
        }
    }
}

$mine = new Mine();
$mine->start();
?>

पैदावार

array(1) {
  ["Database"]=>
  string(18) "information_schema"
}
array(1) {
  ["Database"]=>
  string(5) "mysql"
}
array(1) {
  ["Database"]=>
  string(18) "performance_schema"
}
array(1) {
  ["Database"]=>
  string(4) "test"
}

ध्यान दें कि, MySQLi ऑब्जेक्ट को कभी भी थ्रेड ऑब्जेक्ट स्कोप में संग्रहीत नहीं किया जाता है, क्योंकि आपको केवल उस ऑब्जेक्ट स्कोप में स्टोर करना चाहिए जिसे आप साझा करना चाहते हैं, और चूंकि आप एक MySQLi कनेक्शन साझा नहीं कर सकते हैं, इसलिए इसे मेथड स्कोप में हेरफेर करना सबसे अच्छा है। ।

जीथब पर SQLWorker उदाहरण सहित कई उदाहरण हैं, आपको उन सभी को पढ़ना चाहिए।

आगे पढ़ने:https://gist.github.com/krakjoe/6437782




  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. ClusterControl के साथ MySQL 8.0 की निगरानी और संचालन प्रबंधन

  3. MySQL में सेलेक्ट स्टेटमेंट का उपयोग करके टेबल नाम प्राप्त करें

  4. क्वेरी परिणाम को .csv प्रारूप के रूप में सहेजने के लिए 1 क्वेरी के साथ 2 sql क्वेरी चलाएँ

  5. दूसरे कंप्यूटर पर mysql डेटाबेस कैसे एक्सपोर्ट करें?