Mysql
 sql >> Database >  >> RDS >> Mysql

Ottenere una connessione PHP PDO da mysql_connect()?

Entrambe le estensioni utilizzano internamente EG(persistent_list) per memorizzare l'handle di connessione persistente. Ma creano hash/chiavi diversi per questo elenco, quindi non riescono a trovare voci della rispettiva altra estensione.

L'estensione mysql crea chiavi nel formato "mysql_<host&port>_<user>..." mentre pdo compila "PDO:DBH:DSN=<dsn>:<user>:...." . Gli hash sono usati quasi come array-key in uno script php. Esempio (eccessivamente) semplificato:

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
  }
}

Quindi la risposta è:no, le connessioni non verranno condivise e riutilizzate dall'estensione mysql e dal PDO.