phpBB Italia chiude!
phpBB Italia ringrazia tutti gli utenti che hanno dato fiducia al nostro progetto per ben 9 anni, e che, grazie al grande lavoro fatto da tutto lo Staff (rigorosamente a titolo gratuito), hanno portato il portale a diventare il principale punto di riferimento italiano alla piattaforma phpBB.

Purtroppo, causa motivi personali, non ho più modo di gestirlo e portarlo avanti. Il forum viene ora posto in uno stato di sola lettura, nonché un archivio storico per permettere a chiunque di fruire di tutte le discussioni trattate.

Il nuovo portale di assistenza per l'Italia di phpBB diventa phpBB-Store.it, cui ringrazio per aver deciso di portare avanti questo grande progetto.

Grazie ancora,
Carlo - Amministratore di phpBB Italia

OO e mysql

Area di discussione relativa al linguaggio di programmazione web più conosciuto. Il forum è dedicato anche a MySQL, la piattaforma di database più utilizzata con il PHP.
Rispondi
BMercer
Utente
Utente
Messaggi: 205
Iscritto il: 02/09/2009, 12:28
Versione: 3.0.6
Server: UNIX/Linux

OO e mysql

Messaggio da BMercer » 20/03/2010, 19:26

Mi sto cimentando per la prima volta nella programmazione orientata ad oggetti e subito il primo problema:

Sto cercando di creare una classe che poi venga richiamata in tutte le pagine per le query sql:

Codice: Seleziona tutto

class db {
// informazioni necessarie
public $host = "localhost";   
public $user = "root";
public $pass = "";
public $database = "nomedatabase";
public $dbcon = mysql_connect($this->host,$this->user,$this->pass); ***


// selezioniamo il database interessato
mysql_select_db($this->database, $this->dbcon);

// connessione al database
public function query($query) {
    mysql_query($query, $this->dbcon);
}
 


E mi dà
Parse error: parse error, expecting `','' or `';'' in C:\wamp\www\mind2\includes\common.php on line 8
La linea 8 è quella indicata con 3 asterischi...
Non ho ben capito che problema c'è...

Avatar utente
Carlo
Amministratore
Amministratore
Messaggi: 9957
Iscritto il: 19/04/2009, 10:24
Sesso: Maschio
Versione: 3.2.0
Server: UNIX/Linux
PHP: 7.1.0
Database: MySQL(i) 10.0.27-MariaDB-cll-lve
Località: Puglia
Contatta:

Re: OO e mysql

Messaggio da Carlo » 21/03/2010, 10:05

Non sò esattamente a quale scopo ti servono quelle funzioni, ma non credo che abbia bisogno di farle diventare pubbliche.

Un mio suggerimento, e quello di utilizzare dei "tab", in modo che il codice sià più facile da "leggere".

Questa è la versione corretta:

Codice: Seleziona tutto

<?php

class db {
    var $host = "localhost";   
    var $user = "root";
    var $pass = "";
    var $database = "nomedatabase";
    
    function db() {
        $this->dbcon = @mysql_connect($this->host, $this->user, $this->pass);
        $select_db = @mysql_select_db($this->database, $this->dbcon);
        
        if (!$this->dbcon || !$select_db) {
            die(mysql_error());
        }
    }
    
    function query($query) {
        if (empty($query)) return false;
        
        $result = @mysql_query($query, $this->dbcon);
        
        if (!$result) {
            return false;
        }else{
            return $result;
        }
    }
}

?>
In allegato trovi questo stesso codice ma con i "tab", visto che quando salvo questo messaggio verranno sostituiti con degli spazi.
classe_db.zip

Ora nella pagina in cui ti serve, richiami la classe così (prima però devi includere il file php contenente la classe):

Codice: Seleziona tutto

$db = new db(); 
Appena esegui questo, verrà effettuata la connessione al database. Se si verificheranno degli errori nella connessione, verranno stampati gli errori con mysql_error() e poi terminerà l'esecuzione dello script.

Per eseguire una query:

Codice: Seleziona tutto

$db->query("SELECT * FROM tabella"); 
Non hai i permessi necessari per visualizzare i file allegati in questo messaggio.
MODs | Stili | Traduzioni MOD
Ogni MP contenente una richiesta di supporto verrà ignorato.

BMercer
Utente
Utente
Messaggi: 205
Iscritto il: 02/09/2009, 12:28
Versione: 3.0.6
Server: UNIX/Linux

Re: OO e mysql

Messaggio da BMercer » 21/03/2010, 18:31

Ho cercato in internet ma non riesco a capire cosa sono questi tab di cui parli (@?).
Inoltre l'errore sopra riportato è scomparso senza che io facessi alcuna modifica. Li avevo resi public perchè pensavo fosse un problema della funzione private.

Ora sto ottenendo lo stesso errore in una completamente diversa:

Codice: Seleziona tutto

class login {

    private $login_code == $db->login_code; ***
    
    public function check_me($cookie_code) {
        if ($cookie_code == $login_code){
            echo '<div id="logged"></div>';
        } else {
            header("Location: error.php", true);
        }
    }
}
 
Stesso errore. Da cosa è generato di preciso?
Grazie :)

EDIT: Trovato l'errore nella prima riga della class == va sostiuito con = ...

Rispondi

Torna a “PHP - MySQL”

Chi c’è in linea

Visitano il forum: Nessuno e 26 ospiti