Mysql
 sql >> Base de données >  >> RDS >> Mysql

Obtenir une connexion PHP PDO à partir d'un mysql_connect() ?

Les deux extensions utilisent en interne EG(persistent_list) pour stocker le descripteur de connexion persistante. Mais ils créent des hachages/clés différents pour cette liste, de sorte qu'ils ne peuvent pas trouver les entrées de l'autre extension respective.

L'extension mysql crée des clés de la forme "mysql_<host&port>_<user>..." tandis que pdo construit "PDO:DBH:DSN=<dsn>:<user>:...." . Les hachages sont utilisés presque comme des clés de tableau dans un script php. Exemple (trop)simplifié :

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

La réponse est donc :non, les connexions ne seront pas partagées et réutilisées par l'extension mysql et PDO.