PDA

View Full Version : [PHP] Problema con MYSQL


Rubberick
30-11-2007, 18:42
Ho questo banale codice:

$link1 = mysql_connect("localhost",$user,$pass);
mysql_select_db("db1",$link1);

$link2 = mysql_connect("localhost",$user,$pass);
mysql_select_db("db2",$link2);

mysql_query("INSERT INTO...",$link1);
mysql_query("SELECT * FROM...",$link2);

Ho 2 connessioni mysql, con lo stesso account (stessa user e pass) se eseguo la query di insert dopo aver avviato la seconda connessione (link2 connect) non mi viene eseguita :| se invece la metto prima della seconda connessione funziona...

cosa puo' essere? una limitazione del mysql che si incavola per il fatto che uso 2 connessioni con lo stesso account? se fossero diversi non avrei problemi?

dad_89
30-11-2007, 20:47
A cosa ti serve avere due account con stesso utente e password?
A questo punto la query eseguila una solo volta no?

kk3z
30-11-2007, 21:05
documentazione:
Se si fa una seconda chiamata a mysql_connect() con gli stessi argomenti, nessuna nuova connessione sarà stabilita, ma sarà restituito l'identificativo della connessione già aperta. Il paramentro nuova_connessione modifica questo comportamento e fa sì che mysql_connect() apra sempre una nuova connessione, anche se mysql_connect() era stata chiamata prima con gli stessi parametri.

quindi:
$link1 = mysql_connect("localhost",$user,$pass);
mysql_select_db("db1",$link1);

$link2 = mysql_connect("localhost",$user,$pass, true);
mysql_select_db("db2",$link2);

Rubberick
02-12-2007, 10:38
ah grazie perfetto allora modifico la mia classe... mettendo sempre new alla fine in modo che se anche c'e' si riapre... =)

Rubberick
02-12-2007, 10:40
gia' che ci siamo volendo scrivere questa classe compatibile con php4 e 5 non c'e' modo di inserire un blocco del tipo:

se php4

classe cosi' come sta

se php5 classe con alcune variabili private, protected e public... ?

kk3z
02-12-2007, 11:46
Non credo si possano usare gli if all'interno del corpo della classe. Devi fare due classi diverse, come ha fatto quello di fckeditor (http://www.fckeditor.net/): tu includi il file nomedellaclasse.php: questo file controlla la versione di php (http://www.php.net/phpversion), se è 4, include nomedellaclasse_php4.php, altrimenti nomedellaclasse_php5.php.