Sari la conținut
Forum Roportal
RHS

php mysql class

Evaluează acest topic

Postări Recomandate

Salutare tuturor!

 

De ceva timp folosesc un fisier mysql.class.php in toate proiectele. Acest fisier imi usureaza foarte mult munca dar imi da probleme cu php5. Cateva functii sunt "vechi" si in viitor or sa fie scoase.

 

Rog pe cineva mai expert ca mine in OOP daca vrea sa modifice fisierul cu functii noi precum mysqli, etc.

 

Exemplu eroare generata de server dar scriptul din pagina index.php continua sa functioneze:

Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in /htdocs/msql/mysql.class.php on line 30

 

Fisier mysql.class.php:

<?php
class database {
    private $host;
    private $user;
    private $pass;
    private $name;
    private $link;
    private $error;
    private $errno;
    private $query;
 
    function __construct($host, $user, $pass, $name = "", $conn = 1) {
        $this->host = $host;
        $this->user = $user;
        $this->pass = $pass;
        if (!empty($name)) {
			$this->name = $name;
		}
		
        if ($conn == 1) {
			$this->connect();
		}
    }
 
    function __destruct() {
        @mysql_close($this->link);
    }
 
    public function connect() {
        if ($this->link = mysql_connect($this->host, $this->user, $this->pass)) {
            if (!empty($this->name)) {
                if (!mysql_select_db($this->name)) $this->exception("Could not connect to the database!");
            }
        } else {
            $this->exception("Could not create database connection!");
        }
    }
 
    public function close() {
        @mysql_close($this->link);
    }
 
    public function query($sql) {
        if ($this->query = @mysql_query($sql)) {
            return $this->query;
        } else {
            $this->exception("Could not query database!");
            return false;
        }
    }
 
    public function num_rows($qid) {
        if (empty($qid)) {         
            $this->exception("Could not get number of rows because no query id was supplied!");
            return false;
        } else {
            return mysql_num_rows($qid);
        }
    }
 
    public function fetch_array($qid) {
        if (empty($qid)) {
            $this->exception("Could not fetch array because no query id was supplied!");
            return false;
        } else {
            $data = mysql_fetch_array($qid);
        }
        return $data;
    }
 
    public function fetch_array_assoc($qid) {
        if (empty($qid)) {
            $this->exception("Could not fetch array assoc because no query id was supplied!");
            return false;
        } else {
            $data = mysql_fetch_array($qid, MYSQL_ASSOC);
        }
        return $data;
    }
 
    public function fetch_all_array($sql, $assoc = true) {
        $data = array();
        if ($qid = $this->query($sql)) {
            if ($assoc) {
                while ($row = $this->fetch_array_assoc($qid)) {
                    $data[] = $row;
                }
            } else {
                while ($row = $this->fetch_array($qid)) {
                    $data[] = $row;
                }
            }
        } else {
            return false;
        }
        return $data;
    }
 
    public function last_id() {
        if ($id = mysql_insert_id()) {
            return $id;
        } else {
            return false;
        }
    }
 
    private function exception($message) {
        if ($this->link) {
            $this->error = mysql_error($this->link);
            $this->errno = mysql_errno($this->link);
        } else {
            $this->error = mysql_error();
            $this->errno = mysql_errno();
        }
        if (PHP_SAPI !== 'cli') {
?>
		<div class="alert-bad">
			<div>Database Error</div>
			<div>Message: <?php echo $message; ?></div>
			<?php if (strlen($this->error) > 0): ?>
			<div><?php echo $this->error; ?></div>
			<?php endif; ?>
			<div>Script: <?php echo @$_SERVER['REQUEST_URI']; ?></div>
			<?php if (strlen(@$_SERVER['HTTP_REFERER']) > 0): ?>
			<div><?php echo @$_SERVER['HTTP_REFERER']; ?></div>
			<?php endif; ?>
		</div>
<?php
        } else {
			echo "MYSQL ERROR: ".((isset($this->error) && !empty($this->error)) ? $this->error:'')."\n";
        }
    }
}
?>

Fisier index.php:

<?php
	require_once('mysql.class.php');
	
	$db = new database('localhost', 'root', 'password', 'datab');
	
	$query = "SELECT * FROM users";
	$result = $db->query($query);
	
	if ($db->num_rows($result) > 0) {
		while ($row = $db->fetch_array($result)) {
			echo $row['user'].'<br />';
		}
	}
?>

Am incercat sa modific linia 30 in felul urmatorul:

if ($this->link = mysqli_connect($this->host, $this->user, $this->pass)) {

dar genereaza alte erori:

Deprecated: mysql_select_db(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in /htdocs/msql/mysql.class.php on line 32

Warning: mysql_error() expects parameter 1 to be resource, object given in /htdocs/msql/mysql.class.php on line 109

Warning: mysql_errno() expects parameter 1 to be resource, object given in /htdocs/msql/mysql.class.php on line 110

 

Am modificat si liniile 32, 109 si 110:

Linia 32: if (!mysqli_select_db($this->name)) $this->exception("Could not connect to the database!");

Linia 109: $this->error = mysqli_error($this->link);

Linia 110: $this->errno = mysqli_errno($this->link);

 

Din pacate raman urmatoarele erori si scriptul din pagina index.php nu mai functioneaza:

Warning: mysqli_select_db() expects exactly 2 parameters, 1 given in /htdocs/msql/mysql.class.php on line 32

 
Database Error
Message: Could not connect to the database!
Script: /msql/
 
Database Error
Message: Could not query database!
Script: /msql/
 
Database Error
Message: Could not get number of rows because no query id was supplied!
Script: /msql/

 

mysql.class.txt

index.txt

Partajează acest post


Link spre post
Distribuie pe alte site-uri

Creează un cont sau autentifică-te pentru a adăuga comentariu

Trebuie să fi un membru pentru a putea lăsa un comentariu.

Creează un cont

Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!

Înregistrează un nou cont

Autentificare

Ai deja un cont? Autentifică-te aici.

Autentifică-te acum

×