您的位置:首页 > 其它

5.适配器模式

2016-02-28 22:37 441 查看




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);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: