IDatabase.php
<?php
namespace IMooc;
interface IDatabase
{
public function connect($host,$user,$password,$dbname);
public function query($sql);
public function close();
}
MySQL.php
<?php
namespace IMooc\Database;
use IMooc\IDatabase;
class MySQL implements IDatabase
{
protected $conn;
public function connect($host,$user,$password,$dbname)
{
$this->conn = mysql_connect($host,$user,$password);
mysql_select_db($dbname);
}
public function query($sql)
{
$res = mysql_query($sql,$this->conn);
return $res;
}
public function close()
{
$this->close($this->conn);
}
}
MySQLi.php
<?php
namespace IMooc\Database;
use IMooc\IDatabase;
class MySQLi implements IDatabase
{
protected $conn;
public function connect($host,$user,$password,$dbname)
{
$conn = mysqli_connect($host,$user,$password,$dbname);
$this->conn = $conn;
}
public function query($sql)
{
return mysqli_query($this->conn,$sql);
}
public function close()
{
mysqli_close($this->conn);
}
}
POD.php
<?php
namespace IMooc\Database;
use IMooc\IDatabase;
class PDO implements IDatabase
{
protected $conn;
public function connect($host,$user,$password,$dbname)
{
$this->conn = new \PDO("mysql:host=$host;dbname=$dbname",$user,$password);
}
public function query($sql)
{
return $this->conn->query($sql);
}
public function close()
{
unset($this->conn);
}
}
index.php
<?php
define('BASEDIR',__DIR__);
include BASEDIR . '/IMooc/Loader.php';
spl_autoload_register('\\IMooc\\Loader::autoload');
/*$db=IMooc\Factory::createDatabase();
$db = \IMooc\Register::get('db1');
var_dump(get_class($db));*/
// MySQL 实现
/*$db = new IMooc\Database\MySQL();
$db->connect('localhost','root','123456','test');
$res = $db->query('select * from test;');
while($row = mysql_fetch_row($res)){
$rows[] = $row;
}
var_dump($rows);*/
// MySQLi 实现
/*$db = new IMooc\Database\MySQLi();
$db->connect('localhost','root','123456','test');
$res = $db->query('select * from test;');
while($row = mysqli_fetch_row($res)){
$rows[] = $row;
}
var_dump($rows);*/
// PDO 实现
$db = new IMooc\Database\PDO();
$db->connect('localhost','root','123456','test');
$res = $db->query('select * from test;');
while($row = mysqli_fetch_row($res)){
$rows[] = $row;
}
var_dump($rows);