Visualizzazione dei risultati da 1 a 7 su 7

Visualizzazione discussione

  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    208

    Problema di logica con le variabili tra classi

    Allora, il mio nuovo problema abbastanza stupido (ma mi mancano dei passaggi logici a volte) è una variabile che non passa come vorrei che facesse.

    Per prima cosa la classe che gestisce la connessione al db:

    Codice PHP:
    class connessionedb {


      
    // parametri per la connessione al database
      
    private $nomehost "localhost";     
      private 
    $nomeuser "user";          
      private 
    $password "pass"
      private 
    $database "db";
      public 
    $connetti;
      
      
    // funzione per la connessione a MySQL
      
    public function __construct() {
           
    $connetti = new mysqli($this->nomehost,$this->nomeuser,$this->password$this->database);
                if (
    $connetti->connect_errno) {
        echo 
    "Failed to connect to MySQL: " $connetti->connect_error;
            } else {
                return 
    $connetti;
            }
        }
      } 
    come si vede in ultimo, il construct di questa classe ritorna una $connetti.

    A questo punto ho un'altra classe abbastanza grande, la quale fa una serie di operazioni che vanno a buon fine, fino al metodo InsertDb che riporto sotto. Chiamo la connessione (nell'implementazione che non ho riportato poichè non si giustifica a dovere come testo e sarebbe complicata da leggere) e poi parte il metodo, il quale però rileva $connetti con undefined variable.

    Codice PHP:
    public function InsertDB() {
            
    $query "INSERT into tabella (old_id,                                  VALUES                 ($this->old_id)";        $this->inserisci mysqli_query($connetti$query);        if (!$this->inserisci) {            die('Error:' mysqli_error($connetti));        } else {            return $this->inserito true;        }    } 
    Le domande sono 3:

    1) Perchè nonostante il return, $connetti non è definita?
    2) In linea più generale, qual'è il sistema giusto per passare una variabile da un'istanza e poi richiamarla in una funzione successiva? (che è un pò quello che faceva in procedurale il comando global)
    3) E' logicamente giusto separare la connessione in una classe diversa da quella della query o dovrebbero (sempre per logica) far parte entrambe di una stessa classe? E in questo secondo caso, come passo l'array da inserire (più o meno la stessa domanda del punto 2)?

    Grazie mille e chiedo ancora scusa per questi dubbi un pò così, ma ci sono veramente dei passaggi che o te li spiega chi ha esperienza, o probabilmente nessun manuale nè spiegazione scritta riporta a dovere.
    Ultima modifica di Korenaar; 04-03-2014 a 19:10

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.