Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Eine PHP-PDO-Verbindung von einem mysql_connect() erhalten?

Beide Erweiterungen verwenden intern EG(persistent_list) um das persistente Verbindungshandle zu speichern. Aber sie erstellen unterschiedliche Hashes/Schlüssel für diese Liste, sodass sie keine Einträge der jeweils anderen Erweiterung finden können.

Die mysql-Erweiterung erstellt Schlüssel der Form "mysql_<host&port>_<user>..." während pdo "PDO:DBH:DSN=<dsn>:<user>:...." erstellt . Die Hashes werden fast wie Array-Schlüssel in einem PHP-Skript verwendet. (Zu) vereinfachtes Beispiel:

function pconnect($host,$user,$pass) {
  global $persistent_list;
  $hashkey = sprintf("extensionname_%s_%s_%s", $host, $user, $pass);
  if ( isset($persistent_list[$hashkey]) ) {
    // use stored connection
  }
  else {
    // create new connection
  }
}

Die Antwort lautet also:Nein, die Verbindungen werden nicht zwischen der mysql-Erweiterung und PDO geteilt und wiederverwendet.