Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    [MySQL] [PHP]: quante volte mi conviene effettuare mysql_connect() in uno script php?

    Ciao a tutti,

    ho uno script PHP che genera un form in modo dinamico. Con questo voglio dire che vari elementi del form (select, text, ratio, etc) sono generati nella pagina html in funzione della selezione da parte dell'utente di altri elementi (sempre del form).

    La mia domanda è la seguente:
    in termini di velocità e pesantezza dello script sul server (sia apache che mysql) è meglio creare un unico mysql_connect all'inizio dello script, e poi nelle varie parti lavorare con quel link, oppure crearne più di uno? Ovviamente le query e i database da interrogare sono molteplici mentre il server MySQL da connettere è unico.

    Grazie
    RiKkArDo on IRCnet

  2. #2
    Utente di HTML.it L'avatar di marco80
    Registrato dal
    May 2005
    Messaggi
    1,357
    Io di solito uso un file di configurazione e lo includo nella pagina index, quella che gestisce le pagine. Poi creo delle costanti sempre in quel file per determninare a quale tabella del db collegarmi.

  3. #3
    sto provando ad usare una sola volta mysql_connect() all'inizio dello script e come primo VANTAGGIO noto che lo script è più leggibile perchè nelle funzioni che operano con il database devo passare due variabili in meno:
    prima: host, login e pass
    ora: link al database

    speriamo di continuare a riscontrare vantaggi
    RiKkArDo on IRCnet

  4. #4
    Utente di HTML.it L'avatar di marco80
    Registrato dal
    May 2005
    Messaggi
    1,357
    prova prova

  5. #5
    ecco un primo piccolo problema:

    ho due funzioni che lavorano con due database differenti e per necessità una contiene l'altra.
    codice:
    funzione1 {
      ..
      lavoro con il database A
      ..
      funzione2()
      ..
      lavoro con il database A   (#)
    }
    
    funzione2 {
      lavoro con il database B
    }
    devo stare attento a selezionare il corretto DB in (#)
    RiKkArDo on IRCnet

  6. #6
    Utente di HTML.it L'avatar di marco80
    Registrato dal
    May 2005
    Messaggi
    1,357
    qual'e' il problema?
    Dovresti fare una cosa cosi':
    Queste DEFINE in quello di configurazione
    DEFINE('DB_HOST', "qui_metti_ip");
    DEFINE('DB_USER', "qui metti user");
    DEFINE('DB_PASS', "qui metti pwd");
    DEFINE('DB_NAME', "nome_db");
    $db = mysql_connect(DB_HOST, DB_USER, DB_PASS);

    DEFINE('CONNESSIONE', $db); //CONNESIONE sara la tua connesione
    DEFINE('DB_NAME', "nome-db"); // DB_NAME sara' il nome del db da utilizzare quindi avrai DB_NAME, DB_NAME2 e cosi via.

    mysql_select_db(DB_NAME, CONNESSIONE) or die ("errore di connessione"); //questo invece lo userai prima delle operazioni per connetterti al db corretto

    praticamente nel file avrai solo questa ultima stringa per la connessione.

  7. #7
    hai ragione,

    basta che in ogni query mtsql indico la tabella desiderata specificando anche il database al quale appartiene scrivendo ad esempio

    select * from database1.tabella
    select * from database2.tabella

    vero?

    questo per evitare che eseguendo un
    select * from tabella
    senza che sia preceduto da un
    mysql_select_db (database2, mysqllink)
    di sbagliare database
    RiKkArDo on IRCnet

  8. #8
    scusa, ho letto solo ora la tua risposta. E ti ringrazio. Ma allora è sempre necessario eseguire mysql_select_db? Oppure basta specificare il database nella query?
    RiKkArDo on IRCnet

  9. #9
    Utente di HTML.it L'avatar di marco80
    Registrato dal
    May 2005
    Messaggi
    1,357
    Veramente io uso mysql_select_db(DB_NAME, CONNESSIONE) or die ("errore di connessione"); prima della query.

    Non uso slect * form db.tabella... Non ho mai provato.

    Forse non hia capito bene come uso io le define.Io uso solo mysql_select_db(DB_NAME, CONNESSIONE) or die ("errore di connessione"); all'interno del file e tutto il resto nel file di configurazione. Poi e' questione di comodita'.

  10. #10
    quindi tu avendo impostato un define in quel modo ogni volta che fai mysql_select_db implicitamente realizzi anche un mysql_connect.

    Se il select_db lo esegui prima di ogni query in pratica hai una connessione per query!

    Azz il contrario di quello che pensavo fosse la soluzione migliore ...

    RiKkArDo on IRCnet

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.