RHS 7 Raportează post Postat Decembrie 4, 2014 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 32Warning: mysql_error() expects parameter 1 to be resource, object given in /htdocs/msql/mysql.class.php on line 109Warning: 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
RHS 7 Raportează post Postat Decembrie 12, 2014 Rezolvat! Multumesc oricum! Partajează acest post Link spre post Distribuie pe alte site-uri