La conexión de varias bases de datos no funciona con new_link=TRUE y sql.safe_mode = OFF
Frecuentes
Visto 419 veces
0
Estoy tratando de conectar una base de datos diferente desde una función php (suponiendo que haya una conexión actual a otra base de datos). Estoy usando mysql_connect()
con new_link
parámetro establecido en TRUE como se puede ver a continuación. ¿Cómo es posible que devuelva el siguiente código? global_thread_id=16357138 local_thread_id=16357139 current_global=16357139
(lo que significa que la conexión local anuló la conexión anterior) a pesar del VERDADERO en mysql_connect()
También en la configuración de php, sql.safe_mode = DESACTIVADO
// Class static method
static function Query($sql) {
$global_thread_id = mysql_thread_id();
if ($link = mysql_connect(FB_DB_HOST, FB_DB_USER, FB_DB_PASS, true))
{
$local_thread_id = mysql_thread_id($link);
echo 'global_thread_id='.$global_thread_id.' local_thread_id='.$local_thread_id.' current_global='.mysql_thread_id();
}
}
1 Respuestas
1
mysql_thread_id() obtiene la última identificación del hilo, no un "global"
php manual para mysql_thread_id dice:
Recupera el ID del hilo actual
// Class static method
static function Query($sql) {
/* fetch latest thread id = global */
$global_thread_id = mysql_thread_id();
if ($link = mysql_connect(FB_DB_HOST, FB_DB_USER, FB_DB_PASS, true))
{
/* fetch thread id from $link */
$local_thread_id = mysql_thread_id($link);
/* echo 2 vars and the latest thread id = same as link */
echo 'global_thread_id='.$global_thread_id.' local_thread_id='.$local_thread_id.' current_global='.mysql_thread_id();
}
}
Respondido 24 ago 12, 06:08
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas php mysql sql mysql-connect or haz tu propia pregunta.
sí, lo sé. Lo que quiero decir con "global" es que mi secuencia de comandos tiene una conexión principal que se usa en todas partes de la página, por lo tanto, mysql_thread_id() sin $ enlace para obtener este ID de hilo principal (por lo tanto, lo llamo conexión global) y para esta segunda conexión estoy usando el recurso $link para obtener lo que yo llamo id de subproceso "local"... - Steve
ahora mi problema es que el ID del hilo devuelto por mysql_thread_id() es igual a $local_thread_id después de la llamada a mysql_connect() a pesar del parámetro 'new_link' establecido en TRUE - Steve
si tiene más de una conexión a la base de datos, siempre use la variable $link cuando hable con mysql, mi enfoque habitual es tener una clase de base de datos, donde configuro $link como una variable de clase. pero si va a arreglar todas sus llamadas mysql, es posible que desee pasar de las antiguas funciones obsoletas a PDO: Puggan se