<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);
require_once 'Mysql.class.php';
class Test
{
private $db;
public function __construct()
{
$this->db = Mysql::singleton();
}
public function listUserid()
{
$result = $this->db->select('SELECT userid, date FROM plus_signup');
return $result->getTable(true);
}
}
$test = new Test();
echo $test->listUserid();
?>
The result can be found Here2. Mysql.class.php, which is used in index.php
<?php
/**
* Mysql.class.php
*/
/**
* class used for db query results
*/
require_once 'QueryResult.class.php';
/**
* "Singleton" pattern MySQL database class
* @package Database
*/
class Mysql
{
private $dbHost = 'sql105.zoka.cc:3306';
private $dbUser = 'jiansen';
private $dbPwd = 'mypassword';
private $database = 'userDB';
private $connx = NULL;
private $error = '';
// DO NOT MODIFY BELOW THIS LINE //
private static $instance;
/**
* Private constructor: prevents direct creation of object
*/
private function __construct()
{
$this->connect();
}
/**
* Singleton method (only allow one instance of this class)
* @return object
*/
public static function singleton()
{
if (!isset(self::$instance))
{
$c = __CLASS__;
self::$instance = new $c;
}
return self::$instance;
} // end singleton()
/**
* Prevent users from cloning this instance
* @return void
*/
public function __clone()
{
trigger_error('Clone is not allowed.', E_USER_ERROR);
}
/**
* Connect to MySQL and select database
* @return boolean
*/
private function connect()
{
$connx = @mysql_connect($this->dbHost, $this->dbUser, $this->dbPwd);
if($connx != FALSE)
{
$this->connx = $connx;
$db = mysql_select_db($this->database, $this->connx);
if($db == FALSE)
{
$this->error = "Unable to select DB: " . mysql_error();
user_error($this->error, E_USER_WARNING);
return(FALSE);
}
return(TRUE);
}
$this->error = "Unable to connect to DBMS: " . mysql_error();
user_error($this->error, E_USER_WARNING);
return(FALSE);
} // end connect()
/**
* Get database connection resource ID
* @return resource
*/
public function getConnection()
{
return($this->connx);
}
/**
* Sanitize input for use in SQL
* @param string|integer|float $input
* @return string|integer|float
*/
public function sanitize($input)
{
$input = trim($input);
if(!is_numeric($input))
{
if(get_magic_quotes_gpc())
{
$input = stripslashes($input);
}
$input = "'" . mysql_real_escape_string($input) . "'";
}
return($input);
}
/**
* Execute SELECT query (or any query that returns result rows)
* @param string $sql
* @return object
*/
public function select($sql)
{
if(!$this->connx)
{
$this->error = "Cannot process query, no DB connection.";
user_error($this->error, E_USER_WARNING);
return(FALSE);
}
$result = mysql_query($sql, $this->connx);
if($result)
{
if(mysql_num_rows($result))
{
return(new QueryResult($result, $this->connx));
}
else
{
return(0);
}
}
else
{
$this->error = "Query failed ($sql): " . mysql_error();
user_error($this->error, E_USER_WARNING);
return(FALSE);
}
}
/**
* Execute query that does not return result rows (e.g.: INSERT)
* @param string $sql
* @return integer
*/
public function modify($sql)
{
if(!$this->connx)
{
$this->error = "Cannot process query, no DB connection.";
user_error($this->error, E_USER_WARNING);
return(FALSE);
}
$result = mysql_query($sql, $this->connx);
if($result)
{
return(mysql_affected_rows($this->connx));
}
else
{
$this->error = "Query failed ($sql): " . mysql_error();
user_error($this->error);
return(FALSE);
}
}
}
3. QueryResult.class.php, which is used in Mysql.class.php<?php
/**
* Mysql
.class.php
*/
/**
* Query result from Mysql class
* @package Database
*/
class QueryResult
{
private $result = NULL;
private $connx = NULL;
private $numRows = 0;
/**
* Constructor
* @param resource $result
* @param resource $connx
* @return void
*/
public function __construct($result, $connx)
{
$this->result = $result;
$this->connx = $connx;
$this->numRows = mysql_num_rows($result);
}
/**
* Get specified result row as assoc. array
* @param integer $row
* @return array
*/
public function getRow($row = NULL)
{
if($row !== NULL and is_numeric($row))
{
if(mysql_data_seek($this->result, abs((int)$row)))
{
return(mysql_fetch_assoc($this->result));
}
}
else
{
return(false);
}
} // end getRow()
/**
* Get query results as HTML table.
* If $headers evaluates a TRUE, a header row will be included.
* If $headers is TRUE and the $labels is an array, the values in $labels
* will be used as the column heading labels.
* @param boolean $headers
* @param array $labels
* @return string
*/
public function getTable($headers = FALSE, $labels = NULL)
{
if(!mysql_data_seek($this->result, 0))
{
return(false);
}
$table = "<table class='dbresult'>\n";
if($headers)
{
$table .= "<tr>";
if(is_array($labels))
{
foreach($labels as $label)
{
$table .= "<th>$label</th>";
}
}
else
{
$num = mysql_num_fields($this->result);
for($ix = 0; $ix < $num; $ix++)
{
$table .= "<th>".mysql_field_name($this->result,$ix)."</th>";
}
}
$table .= "</tr>\n";
}
while($row = mysql_fetch_row($this->result))
{
$table .= "<tr>";
foreach($row as $val)
{
$table .= "<td>$val</td>";
}
$table .= "</tr>\n";
}
$table .= "</table>\n";
return($table);
}
/**
* Get query results as an array
* @return array
*/
public function getArray()
{
mysql_data_seek($this->result, 0);
$data = array();
while($row = mysql_fetch_assoc($this->result))
{
$data[] = $row;
}
return($data);
} // end getArray()
/**
* Get query results as an XML string
* @return string
*/
public function getXml()
{
mysql_data_seek($this->result, 0);
$xml = "<?xml version='1.0' encoding='ISO-8859-1'?>\n<data>\n";
$count = 1;
while($row = mysql_fetch_assoc($this->result))
{
$xml .= " <record row='$count'>\n";
foreach($row as $key => $val)
{
$xml .= " <$key>$val</$key>\n";
}
$xml .= " </record>\n";
$count++;
}
$xml .= "</data>";
return($xml);
} // end getXml()
/**
* Free this MySQL result
* @return boolean
*/
public function free()
{
return(mysql_free_result($this->result));
} // end free()
/**
* Getter for query result resource ID
* @return resource
*/
public function getResultId()
{
return($this->result);
}
/**
* Getter for number of result rows
* @return integer
*/
public function getNumRows()
{
return($this->numRows);
}
}
Static Keyword
ReplyDeleteDeclaring class properties or methods as static makes them accessible without needing an instantiation of the class. A property declared as static can not be accessed with an instantiated class object (though a static method can).
<?php
class Foo
{
public static $my_static = 'foo';
public function staticValue() {
return self::$my_static;
}
}
class Bar extends Foo
{
public function fooStatic() {
return parent::$my_static;
}
}
print Foo::$my_static . "\n";
$foo = new Foo();
print $foo->staticValue() . "\n";
print $foo->my_static . "\n"; // Undefined "Property" my_static
print $foo::$my_static . "\n";
$classname = 'Foo';
print $classname::$my_static . "\n"; // As of PHP 5.3.0
print Bar::$my_static . "\n";
$bar = new Bar();
print $bar->fooStatic() . "\n";
?>
Example #2 Static method example
<?php
class Foo {
public static function aStaticMethod() {
// ...
}
}
Foo::aStaticMethod();
$classname = 'Foo';
$classname::aStaticMethod(); // As of PHP 5.3.0
?>
This article is good . For more detail in briefly click here
ReplyDeleteHOW TO CREATE A SESSION IN PHP