sql >> Base de Datos >  >> RDS >> Mysql

¿Obtener una conexión PHP PDO desde mysql_connect ()?

Ambas extensiones usan internamente EG(persistent_list) para almacenar el identificador de conexión persistente. Pero crean diferentes hashes/claves para esta lista, por lo que no pueden encontrar entradas de la otra extensión respectiva.

La extensión mysql crea claves de la forma "mysql_<host&port>_<user>..." while pdo construye "PDO:DBH:DSN=<dsn>:<user>:...." . Los hash se usan casi como claves de matriz en un script php. Ejemplo (sobre-)simplificado:

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

Entonces la respuesta es:No, las conexiones no serán compartidas ni reutilizadas por la extensión mysql y PDO.