Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di E.C.Web
    Registrato dal
    Dec 2011
    Messaggi
    139

    [PHP/MYSQL] Problema di connessione al Database Mysql

    Salve ragazzi, sto cercando di far girare una semplice funzione per connettermi al Database ( host: altervista ) ma ho un problema con la selezione del database, che in effetti non và a buon fine.

    In breve ecco cosa faccio e come mi sono organizzato le pagine.
    Partendo dalla cartella principale del sito, ho un cartella per i file "includes" ovvero, quei file che saranno in seguito richiesti dalle pagine web attraverso un require_once oppure un include_once.
    In seguito ho il file index.php che rappresenta la pagina principale del sito come tutti sapete...
    Ritornando alla cartella includes, all'interno ho creato due file chiamati: config.inc.php e l'altro functions.inc.php.
    Il primo si occupa di raccogliere tutte quelle variabili utili alla configurazione del sito, ad esempio i dati del database.
    Il secondo è un raccoglitore di funzioni, che io pesco ogni volta che mi servono.

    Ecco dunque un pò di codice: Partiamo da config.inc.php
    Codice PHP:
    <?php 

    /* DATI DI CONNESSIONE DEL DATABASE */

        
    $DB_USERNAME "bla bla";          // Nome del Sito Web
        
    $DB_PASSWORD "bla bla";        // Password di accesso al pannello di controllo
        
    $DB_DATABASE "my_bla bla";   // Nome del Database del Sito
        
    $DB_HOSTNAME "localhost";    // URL completo del Sito Web

    ?>
    functions.inc.php

    Codice PHP:
    // Funzione di connessione al database

    function connect_db()
    {
        
    $db_user $DB_USERNAME;
        
    $db_pass $DB_PASSWORD;
        
    $db_data $DB_DATABASE;
        
    $db_host $DB_HOSTNAME;
        
            
    $db mysql_connect($db_host$db_user$db_pass)or die("Non riesco a connettermi");
        
    mysql_select_db($DB_DATABASE)or die("Non riesco a connettermi");
            
        echo 
    "Status server: Online";
        
        return 
    $db;

    }

    // Funzione di disconessione e chiusura del database

    function disconnet_db($db)
    {
        
    mysql_close($db);

    index.php

    Codice PHP:
    <?php require_once("includes/config.inc.php"); ?>
    <?php 
    require_once("includes/functions.inc.php"); ?>
    <!doctype html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>Home Page</title>
    </head>

    <body>
    <h2>Test di connessione</h2>


    Analisi della connessione al database
    [img]http://www.trofeotelese.it/img/loading-gif.gif[/img]</p>

    <?php 

    connect_db
    ();

    ?>
    </body>
    </html>
    Ora vi posto uno screen che mostra il risultato che appare nella pagina index.php.



    Come mai? Non riesco a capire dove sbaglio, aspetto un vostro supporto, grazie in anticipo!

  2. #2
    Ciao,

    Il problema è che la funzione connect_db() non può accedere alle variabili della conf. database se non dichiarate in ambito globale. Ti conviene usare delle costanti.

    Codice PHP:
    <?php 

    /* DATI DI CONNESSIONE DEL DATABASE */

        
    const DB_USERNAME "bla bla";          // Nome del Sito Web
        
    const DB_PASSWORD "bla bla";        // Password di accesso al pannello di controllo
        
    const DB_DATABASE "my_bla bla";   // Nome del Database del Sito
        
    const DB_HOSTNAME "localhost";    // URL completo del Sito Web

    ?> 

    <?php

    function connect_db()
    {
        
    $db_user DB_USERNAME;
        
    $db_pass DB_PASSWORD;
        
    $db_data DB_DATABASE;
        
    $db_host DB_HOSTNAME;
        
            
    $db mysql_connect($db_host$db_user$db_pass)or die("Non riesco a connettermi");
        
    mysql_select_db($db_data)or die("Non riesco a connettermi");
            
        echo 
    "Status server: Online";
        
        return 
    $db;

    }
    ?>

  3. #3
    Originariamente inviato da earth.web2
    Ciao,

    Il problema è che la funzione connect_db() non può accedere alle variabili della conf. database se non dichiarate in ambito globale. Ti conviene usare delle costanti.

    Codice PHP:
    <?php 

    /* DATI DI CONNESSIONE DEL DATABASE */

        
    const DB_USERNAME "bla bla";          // Nome del Sito Web
        
    const DB_PASSWORD "bla bla";        // Password di accesso al pannello di controllo
        
    const DB_DATABASE "my_bla bla";   // Nome del Database del Sito
        
    const DB_HOSTNAME "localhost";    // URL completo del Sito Web

    ?> 

    <?php

    function connect_db()
    {
        
    $db_user DB_USERNAME;
        
    $db_pass DB_PASSWORD;
        
    $db_data DB_DATABASE;
        
    $db_host DB_HOSTNAME;
        
            
    $db mysql_connect($db_host$db_user$db_pass)or die("Non riesco a connettermi");
        
    mysql_select_db($db_data)or die("Non riesco a connettermi");
            
        echo 
    "Status server: Online";
        
        return 
    $db;

    }
    ?>
    Nello specifico non può accedervi se non sono costanti o se non vengono passate come parametri della funzione procedurale.

  4. #4
    Utente di HTML.it L'avatar di E.C.Web
    Registrato dal
    Dec 2011
    Messaggi
    139
    Ah capisco, quindi la funzione mysql_select_db può accedere solo alle variabili che si trovano nella stessa pagina oppure può elaborarle solo se queste da costanti vengono convertite nella stessa pagina in variabili, come in questo caso:

    Codice PHP:
    $db_user DB_USERNAME;
    $db_pass DB_PASSWORD
    $db_data DB_DATABASE
    $db_host DB_HOSTNAME
    Come mai l'uso di questo "const" al posto di define(blabla) ecc? Le regole del php5 valgono anche nel php4?

    Aggiornamento: mi restituisce Parse error: syntax error, unexpected T_CONST nel file config.inc.php sulla linea 12

    Ecco il codice della pagina config.inc.php:

    Codice PHP:
    <?php 


    /* DATI DI CONNESSIONE DEL DATABASE */


        
    const DB_USERNAME "bla bla";          // Nome del Sito Web 
        
    const DB_PASSWORD "bla bla";        // Password di accesso 
        
    const DB_DATABASE "my_bla bla";   // Nome del Database del Sito 
        
    const $DB_HOSTNAME "localhost";    // URL completo del Sito Web 

    ?>

  5. #5
    Scusa ho dato per scontato che usassi un php versione aggiornata.
    Usa pure in alternativa il define("COSTANTE", "Valore"); che dovrebbe andare bene anche su versioni php più vecchie

  6. #6
    Utente di HTML.it L'avatar di E.C.Web
    Registrato dal
    Dec 2011
    Messaggi
    139
    Ora va perfettamente, grazie dell'aiuto

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.