note 101991 deleted from ref.mysql by danbrown

From: Date: Tue, 15 Mar 2011 17:54:40 +0000
Subject: note 101991 deleted from ref.mysql by danbrown
References: 1  Groups: php.notes 
Request: Send a blank email to php-notes+get-177921@lists.php.net to get a copy of this message
Note Submitter: bgmort@geemail ---- I just put together this class as a simple extensible wrapper for my database queries, and thought it might come in handy for someone else. The Db class at the top shows how it can be extended. The queryAsArray is just a convenience function for query(); both functions are quite useful. <?php class Db extends DbBase{ protected $addr = "localhost:3306"; protected $user = "myusername"; protected $db = "mydatabase"; protected $pwd = "mypassword"; } class DbBase { private $con; protected $addr; protected $user; protected $db; protected $pwd; function __construct(){ $this->con = mysql_connect($this->addr, $this->user, $this->pwd); if (!$this->con){ die('Could not connect: ' . mysql_error()); } mysql_select_db($this->db); } function __destruct(){ mysql_close($this->con); } /* Execute a myqsl query. Optionally set the number of records affected. Connection is handled automatically by the constructor and destructor. */ function query($sql, &$records = null){ $sql = str_replace(array('\\"', "\\'"), array('"', "'"), $sql); $result = mysql_query($sql);// or die(mysql_error()); if (!$result){ $err = mysql_error(); die($err); } if (isset($records)){ $records = mysql_affected_rows($this->con); } return $result; } /* turns your result into an array (valid typs are MYSQL_ASSOC, MYSQL_NUM, and MYSQL_BOTH) */ function queryAsArray($sql, $type = MYSQL_ASSOC){ $result = $this->query($sql); if(!is_resource($result)){ trigger_error("query did not return a valid resource", E_USER_WARNING); return $result; } $data = array(); while($row = mysql_fetch_array($result, $type)) $data[] = $row; return $data; } }//end class //example usage $db = new Db(); $sql = "SHOW TABLES;"; $res = $db->queryAsArray($sql, MYSQL_NUM); var_dump($res); //example using query() $table = $res[0][0]; $sql = "SELECT * FROM $table"; $rows = -1; $res = $db->query($sql, $rows); echo "Found $rows entries in table $table\n"; while ($row = mysql_fetch_array($res)){ //do some processing.. var_dump ($row); } //example using queryAsArray() $res = $db->queryAsArray($sql); echo "Found " . count($res) . " entries in table $table\n"; var_dump($res); //queries that modify are just as easy. passing $rows is optional, but if you use it, declare it first. $sql = "DELETE FROM $table WHERE true = false;"; if ($db->query($sql, $rows)) echo "$rows records affected.\n"; else echo "Error in query: '$sql'.\n"; ?>

« previous php.notes (#177921) next »