Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    217

    Agglomerare funzioni in una personalizzata

    Vorrei eseguire la connessione al db (2 righe di codice che però potrebbero successivamente includerne ulteriori) in un'unica funzione. Premetto che le due righe di connessione fuori dalla funzione vengono eseguite correttamente.

    Avevo pensato a questo:
    Codice PHP:
    function db_connect() {     
     
    $db mysql_connect($db_host$db_user$db_password) or die ('Connessione HOST fallita: ' mysql_error());  
     
    mysql_select_db($db_name$db) or die ('Selezione DB fallita: ' mysql_error()); 

    ps: i parametri di connessione $db_host, $db_user, etc sono inclusi nel codice precedentemente alla funzione.

    Ma mi restituisce questo:
    Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'ftp'@'localhost' (using password: NO) in /www/functions.php on line 7 Connessione HOST fallita: Access denied for user 'ftp'@'localhost' (using password: NO)

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    1,453
    Non vengono passate variabili e non utilizzi variabili globali perciò dove ricavi i parametri ?

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    217
    I parametri di connessione sono inclusi nel codice in una posizione precedente a quella in cui costituisco la funzione. La funzione non li vede comunque?

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    1,453
    Originariamente inviato da Tom1884
    I parametri di connessione sono inclusi nel codice in una posizione precedente a quella in cui costituisco la funzione. La funzione non li vede comunque?
    , non dirmi che credevi davvero che tutte le variabili del file fossero
    condivisibili con le funzioni? Secondo te perchè ci sarebbero le variabili globali sennò?

    O passi i parametri o usi le variabili globali, oppure si impara a fare qualcosa di decente con il paradigma ad oop e qualche classe che dici?

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    217
    Ok! Ora sono riuscito a connetterlo!
    codice:
    function db_connect() {
    include("config.inc.php"); 
    $db = mysql_connect($db_host, $db_user, $db_password) or die ('Connessione HOST fallita: ' . mysql_error());  	
    mysql_select_db($db_name, $db) or die ('Selezione DB fallita: ' . mysql_error());
    }
    Adesso non vanno i mysql_query() e mysql_fetch_array() che stanno subito dopo la funzione...

    codice:
    db_connect();
    $query = "SELECT ...."; 
    $result = mysql_query($query, $db); 
    while ($row = mysql_fetch_array($result)) {...}

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    1,453
    $db è usabile solo dentro la funzione perciò mysql_query($query, $db):

    1)Non trova la variabile della connessione al db
    2)Non ne necessita visto che php setta di default l'ultima connessione
    3)Usare qualche classe e qualche metodo no?

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    217
    Grazie dei consigli!!!

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    217
    Anzi, approfitto per un'ulteriore delucidazione: se nel mio sito, a traffico bassissimo se non praticamente nulla, a parte 2 giorni all'anno, metto la connessione nell'head di tutte le pagine, incorro in controindicazioni?

  9. #9
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    1,453
    Originariamente inviato da Tom1884
    Anzi, approfitto per un'ulteriore delucidazione: se nel mio sito, a traffico bassissimo se non praticamente nulla, a parte 2 giorni all'anno, metto la connessione nell'head di tutte le pagine, incorro in controindicazioni?
    Non capisco il senso, se proprio la devi includere ovunque creala in un file
    e includi quello in cima, comunque no non cambia niente, tanto piu con tale traffico

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.