Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 29
  1. #1
    Utente di HTML.it L'avatar di niubbo
    Registrato dal
    Jul 2004
    Messaggi
    692

    Come determino se una connessione con mysqli_connect è stata già effettuata?

    Ho la necessità di non far ripetere una stessa richiesta di connessione che all'interno di vari script viene richiamata identica arrivando al punto di darmi l'errore "Connect Error: 1040" (almeno credo sia questa la causa del problema) vorrei in pratica evitare tramite una condizione che ci si riconnetta all'interno dello stesso script alla stessa cosa, come posso fare?

    Grazie
    Non si può niubbare per sempre...

    P.S. Ma perché i CSS non fanno quello che gli dico di fare.... aaaAAAAAAARGHHHHH!!!!!

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    mmh... non è che stai usando connessioni persistenti? solitamente non ci sono problemi particolari... posta il comando che usi negli script per fare la connessione.... ovviamente dando per scontato che all'interno dello stesso script non richiami due volte la stessa azione!

  3. #3

    Re: Come determino se una connessione con mysqli_connect è stata già effettuata?

    Originariamente inviato da niubbo
    Ho la necessità di non far ripetere una stessa richiesta di connessione che all'interno di vari script viene richiamata identica arrivando al punto di darmi l'errore "Connect Error: 1040" (almeno credo sia questa la causa del problema) vorrei in pratica evitare tramite una condizione che ci si riconnetta all'interno dello stesso script alla stessa cosa, come posso fare?

    Grazie
    basta non chiudere la connessione.

    mysql_close()

    lo script cessa al termine della pagina e chiude automaticamente la connessione. Quindi se richiami la stessa pagina devi rifare la connessione. Se l'errore indica troppe connessioni potrebbe essere il caso di una limitazione che ti viene imposta dal tuo hoster internet e/o dal tipo di contratto che hai.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  4. #4
    Utente di HTML.it L'avatar di niubbo
    Registrato dal
    Jul 2004
    Messaggi
    692
    Tutto è cominciato quando ho provato ad usare mysqli_connect invece del tradizionale mysql_connect in una mia libreria che effettivamente ripeteva spesso la richiesta di connessione... cosa può essere?

    Grazie
    Non si può niubbare per sempre...

    P.S. Ma perché i CSS non fanno quello che gli dico di fare.... aaaAAAAAAARGHHHHH!!!!!

  5. #5
    Se usi una classe e in ogni metodo apri la connessione, ti basta chiuderla prima della fine del metodo, prima del return.

    Altrimenti chiudila a fine pagina.

  6. #6
    Utente di HTML.it L'avatar di niubbo
    Registrato dal
    Jul 2004
    Messaggi
    692
    Effettivamente ho fatto un uso sconsiderato di istanze di una classe che nel costruttore sta sempre ad aprire una connessione... così per una pagina la richiesta di una stessa identica connessione mi si ripresenta anche 20 volte... dovrei chiudere la connessione ogni volta che la sequenza di query che ne consegue finisce... la cosa però mi è nata solo con mysqli_connect... altrimenti se ne frega se riapro mille volte la stessa connessione e poi chiude tutto "coattamente" a fine pagina come mi sembra di aver capito...
    Non si può niubbare per sempre...

    P.S. Ma perché i CSS non fanno quello che gli dico di fare.... aaaAAAAAAARGHHHHH!!!!!

  7. #7
    Utente di HTML.it L'avatar di garakkio
    Registrato dal
    Dec 2011
    residenza
    Roma
    Messaggi
    480
    Hai una qualche necessità che ti porta a usare mysqli_connect() invece di mysql_connect()?
    Perché il primo non riusa la connessione, mentre il secondo sì (vedi manuale).
    Quindi puoi richiamare mysql_connect() anche 100 volte nello stesso script, userai sempre la prima connessione (a patto ovviamente di usare gli stessi parametri e di non chiudere la connessione esplicitamente)

  8. #8
    Utente di HTML.it L'avatar di niubbo
    Registrato dal
    Jul 2004
    Messaggi
    692
    Ho provato mysqli_connect per aumentare le prestazioni... ma c'è una sostanziale differenza da questo punto di vista? Di sicuro sono riscritte da zero e pensate per il futuro le librerie con la "i"... poi non so...
    Non si può niubbare per sempre...

    P.S. Ma perché i CSS non fanno quello che gli dico di fare.... aaaAAAAAAARGHHHHH!!!!!

  9. #9
    una differenza è che puoi utilizzare mysqli come un oggetto
    e quindi istanziarlo con new mysqli($host, $user, $password) invece di fare mysqli_connect().
    Ovviamente poi tutte le altre funzioni diventano metodi e vanno usati di conseguenza.

    Per le prestazioni... non saprei dirti sinceramente.
    Faccio una ricerca su google.

    EDIT:

    Dalla wiki di Joomla

    MySQLi (MySQLi improved), permette di sfruttare in modo più veloce alcune nuove funzionalità messe a disposizione dalle più recenti versioni di Mysql. Mysqli è la nuova interfaccia per PHP per interfacciarsi a mysql e può essere usata da qualsiasi versione di Mysql superiore alla 4.1.3. In confronto al driver classico Mysql offre vantaggi per chi sviluppa visto che è completamente Object Oriented (quindi pulizia di codice), implementa nuove caratteristiche in modo standard quali chiamate a Stored Procedure , Prepared Statement, etc e facilità di debug per la ricerca di problematiche. Anche per l'utente finale è una scelta che avvantaggia visto che apre la strada alle nuove implementazioni del database in maniera "pulita" con la sicurezza che chi sviluppa non crei delle cose non standard che poi, ad un upgrade del database, magari non siano più supportate.
    e da Mr. Webmaster

    può essere utilizzata sia all'interno di applicazioni realizzate seguendo il paradigma procedurale che quello Orientato agli Oggetti;
    fornisce il supporto nativo al protocollo binario di MySQL introdotto con la versione 4.1; supporta stored procedures, query multiple e transactions;
    permette impostazioni avanzate per la connesssione tramite mysqli_init();
    supporta le prepared statements per il caching delle interrogazioni;
    garantisce prestazioni più elevate dell'estensione MySQL, è ritenuta più sicura e fornisce in genere migliori risposte in fase di debugging.

  10. #10
    Utente di HTML.it L'avatar di garakkio
    Registrato dal
    Dec 2011
    residenza
    Roma
    Messaggi
    480
    se devi passare a mysqli_connect e continuare con spaghetti code, resta a mysql_connect()

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.