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基本步骤
';
}
/**
* 第五步 释放资源
*/
mysql_free_result ( $result );
mysql_close ( $link );
?>
用mysql扩展库封装成面向对象
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:一样是面向对象。
代码案例
getMessage ();
}
$sql = 'select * from t1';
$stmt = $dbh->query($sql);
$row = $stmt->fetch();
var_dump($row);
?>