Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2011
    Messaggi
    37

    [MySQL + php] Problema mysql_connection e mysql_close

    Salve! Devo fare una pagina che mostra i prodotti prelevandoli da un db. Sto creando la pagina per l'inserimento dei record ma...

    Codici:

    sito/database/db.php
    <?php
    class SQL
    {
    private $db_name = "localhost";
    private $db_user = "*********";
    private $db_password = "**********";
    private $connesso = false;
    private $host;

    public function getName()
    {
    return $db_name;
    }

    public function getUser()
    {
    return $db_user;
    }

    public function getPassword()
    {
    return $db_password;
    }

    public function isConnect()
    {
    return $connesso;
    }

    public function connessione()
    {
    $host = mysql_connect($db_name, $db_user, $db_password);
    return (!$host) ? false : true;
    }

    public function check_connessione()
    {
    $connesso = $this->connessione();
    if ($connesso == true) echo "Connessione stabilita";
    else echo "Connessione fallita
    " . mysql_error();
    return $connesso;
    }

    public function close()
    {
    return (mysql_close($host)) ? true : false;
    }

    public function check_close()
    {
    $chiudi = $this->close();
    $connesso = true;
    if ($chiudi == true) echo "Connessione chiusa";
    else echo "Chiusura fallita
    " . mysql_error();
    return $chiudi;
    }
    }
    ?>





    sito/prodotti/add_item.php

    <?php
    include "../database/db.php";
    $db = new SQL;
    $db->check_connessione();
    echo "
    ";
    $db->check_close();
    ?>



    Ma non funziona!

  2. #2
    Che significa non funziona?
    Vengono restituiti errori?
    Spiega un pò visto che non siamo in possesso di palla magica
    E metti il codice nei tag PHP.

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2011
    Messaggi
    37
    Sì, scusate, ero di fretta per... Va beh comunque ormai non posso più modificare il messaggio...
    I problemi sono due:
    mysql_connect() restituisce true anche con dati errati!
    mysq_close() restituisce false anche dopo aver aperto una connessione quindi il primo da sempre true e questo sempre false :\
    Lo deduco perché l'output di add_item.php in ogni tentativo che ho fatto (anche con dati errati) è il seguente:

    Connessione stabilita
    Chiusura fallita

  4. #4
    Dopo la connessione dai un var_dump($host) e vedi cosa contiene.
    Prova anche ad aggiungere al posto di
    Codice PHP:
    mysql_connect($db_name$db_user$db_password
    metti
    Codice PHP:
    mysql_connect($db_name$db_user$db_password) or ("errore"

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2011
    Messaggi
    37
    Ho modificato la funzione così:
    Codice PHP:
    public function connessione()
        {
            
    $host mysql_connect($db_name$db_user$db_password) or ("errore");
            echo 
    "Info var host: ";
            
    var_dump($host);
            echo 
    "
    "
    ;
            return (!
    $host) ? false true;
        } 
    Non è stato risolto però... Ecco l'output con le info di $host
    Info var host: resource(3) of type (mysql link)
    Connessione stabilita
    Chiusura fallita

    EDIT

    Ho modificato la pagina add_item.php per aggiungere la grafica:

    Codice PHP:
    <?php
    include '../cont.php';
    include 
    "../database/db.php";
    alto("Prodotti ~ Ritrovo Extra""prodotti""connessione al db");
    ?>

    <div id="content_center">

    <?php
    $db 
    = new SQL;
    $db->check_connessione();
    echo 
    "
    "
    ;
    $db->check_close();
    ?>

    </div>

    <?php
    basso
    ();
    ?>
    alto contiene l'header e basso contiene la chiusura della pagina... Adesso l'output è cambiato così:

    Info var host: resource(4) of type (mysql link)
    Connessione stabilita
    Chiusura fallita

  6. #6
    Scusa ho sbagliato a scrivere, invece di
    Codice PHP:
     mysql_connect($db_name$db_user$db_password) or ("errore"
    è
    Codice PHP:
     mysql_connect($db_name$db_user$db_password) or die ("errore"
    aggiungilo anche a
    Codice PHP:
    mysql_close($host) or die("errore 2"

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2011
    Messaggi
    37
    Codice PHP:
            public function connessione()
        {
            
    $host mysql_connect($db_name$db_user$db_password) or die("errore");
            echo 
    "Info var host: ";
            
    var_dump($host);
            echo 
    "
    "
    ;
            return (!
    $host) ? false true;
        }
        
        public function 
    check_connessione()
        {
            
    $connesso $this->connessione();
            if (
    $connesso == true) echo "Connessione stabilita";
            else echo 
    "Connessione fallita
    mysql_error();
            return 
    $connesso;
        }
        
        public function 
    close()
        {
            
    $ris=mysql_close($host) or die("errore 2");
            return (
    $ris) ? true false;
        }
        
        public function 
    check_close()
        {
            
    $chiudi $this->close();
            
    $connesso true;
            if (
    $chiudi == true) echo "Connessione chiusa";
            else echo 
    "Chiusura fallita 
    mysql_error();
            return 
    $chiudi;
        } 
    Output:

    codice:
    Info var host: resource(4) of type (mysql link) 
    Connessione stabilita
    errore 2
    Ho provato a mettere anche il nome del db diverso (nome: ca, user: ca, pasw: ca) che ovviamente sono errati e l'output è lo stesso...


    EDIT:
    Guardando l'HTML della pagina add_item, ho notato che non interpreta le istruzioni dopo db->close();
    Infatti finisce così:
    codice:
    <div id="content_center">
    
    Info var host: resource(4) of type (mysql link)
    
    Connessione stabilita
    errore 2
    Saltando quindi </div> e basso();

    add_item.php
    Codice PHP:
    <?php
    include '../cont.php';
    include 
    "../database/db.php";
    alto("Prodotti ~ Ritrovo Extra""prodotti""connessione al db");
    ?>

    <div id="content_center">

    <?php
    $db 
    = new SQL;
    $db->check_connessione();
    echo 
    "
    "
    ;
    $db->check_close();
    ?>

    </div>

    <?php
    basso
    ();
    ?>

    EDIT:

    Ho risolto levando il parametro a mysql_close() quindi senza $host tra le parentesi. Ora l'HTML di basso() lo stampa correttamente.

    Codice PHP:
    ...
    Info var hostresource(4of type (mysql link)

    Connessione stabilita
    Connessione chiusa
    </div>


                    


     

                    <
    div id="copyright">Copyright © 2013 [url]www.ritrovoextra.altervista.org[/urlby [email="bobby.mattia@hotmail.it"]Alfonso Mattia[/email] - Tutti i diritti riservati.</div>
                </
    div>
            </
    body>
            </
    html
    Rimane però il fatto che la connessione ritorna TRUE anche se metto dati errati.

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    72
    Ho lo stesso identico problema. La funzione è TRUE anche con i parametri del db errati!

    Tu per caso hai risolto?

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.