您的位置:首页 > 编程语言 > PHP开发

php中mysql mysqli pdo扩展库

2014-08-17 22:53 621 查看
php中mysql mysqli pdo扩展库

mysql:面向过程操作mysql数据库

mysqli:面向对象操作mysql数据库

pdo:面向对象操作,但不一定是mysql数据库,便于项目的数据库移值。

mysql扩展库

以下是mysql经常使用到的函数

mysql_connect(),mysql_query(),mysql_affected_rows()

mysql_fetch_array() 关联和数字键值对数组 || mysql_fetch_assoc()  关联数组|| mysql_fetch_row() 索引数组

mysql_free_result(),mysql_close()

操作mysql基本步骤

<?php
/**************************************
**典型案例
***/
/**
* 第一步 连接数据库
*/
$link = @mysql_connect('localhost', 'root', 'root')  or exit(mysql_error());
/**
* 第二步 设置字符集
* */
mysql_query('set names utf8', $link) or exit(mysql_error());
/**
* 第三步 选择数据库
* /
mysql_query('use php0320', $link) or exit(mysql_error());

/**
* 第四步 数据库sql操作
* */
$sql  =  'select * from t1';
$result  =  mysql_query( $sql ) or exit(mysql_error());

mysql_affected_rows($link) or printf(' affected_rows : 0 ');

while ($row = mysql_fetch_assoc($result)){
foreach($row as $v){
echo $v,' ';
}
echo '
';
}
/**
* 第五步 释放资源
*/
mysql_free_result ( $result );
mysql_close ( $link );
?>

用mysql扩展库封装成面向对象

<?php
/*
DataBases类
*/
class DB{

/********
成员属性
**********/
private $host,$port,$username,$password;
private $charset,$prefix;
private $db;
private $link;

/**********
成员方法
***********/
public function __construct($host='localhost',$port='3306',
$username='root',$password='root',
$charset='utf8',$db='php0320',$prefix='cz_')
{
$this->host = $host;
$this->port = $port;
$this->username	= $username;
$this->password = $password;
$this->charset = $charset;
$this->db = $db;
$this->prefix = $prefix;
/**连接数据库**/
$this->link = @mysql_connect($this->host . ':' . $this->port,$this->username,$this->password) or exit(mysql_error());
/**设置字符集**/
mysql_query('set names '.$this->charset, $this->link) or exit(mysql_error());
/**选择数据库**/
mysql_query('use '.$this->db, $this->link) or exit(mysql_error());
}

public function __destruct(){
/*释放连接*/
if(is_resource($this->link)){ //因为继承后有可能parent::__destruct()
mysql_close ( $this->link);
}
}

/**增删改查**/
/* function 增加数据
* return int 返回id
*/
public function DB_insert($sql){
$this->DB_que($sql);
return mysql_insert_id($this->link);
}

/* function 删除数据
* return int 受影响的行数
*/
public function DB_delete($sql){
$this->DB_que($sql);
return mysql_affected_rows($this->link);
}

/* function 更新数据
* return int 受影响的行数
*/
public function DB_update($sql){
$this->DB_que($sql);
return mysql_affected_rows($this->link);
}

/* functio 查询数据
* return arr[][] 若查询语句为空 则返回NULL
*/
public function DB_select($sql){
$res = $this->DB_que($sql);
while($row = mysql_fetch_assoc($res)){
$arr[] = $row;
}
mysql_free_result($res);
return isset($arr)? $arr:NULL;
}

/*	fucntion 查询一行数据
*	return arr[] 若查询语句为空 则返回false
*/
public function DB_getrow($sql){
$res = $this->DB_que($sql);
$row = mysql_fetch_assoc($res);
mysql_free_result($res);
return $row;
}

/**封装连接数据库**/
private function DB_connect(){
}

/**封装sql语句执行函数
* @ return 执行结果 若出错停止执行并报错
**/
private function DB_que($sql){
($res = mysql_query( $sql )) or exit(mysql_error());
return $res;
}

}

?>


mysqli:只是封装成面向对象。这里就不说了。
PDO:一样是面向对象。
代码案例
<?php

$dsn = 'mysql:host=localhost;dbname=php0320';
$user  =  'root' ;
$password  =  'root' ;

try {
$dbh = new  PDO ( $dsn ,  $user ,  $password );
} catch ( PDOException $e ) {
echo  'Connection failed: '  .  $e -> getMessage ();
}

$sql = 'select * from t1';
$stmt = $dbh->query($sql);
$row = $stmt->fetch();
var_dump($row);

?>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  php中mysql mysqli pdo