数据库连接扩展

摘要:PHP中一个数据库可能有一个或者多个扩展,其中既有官方的,也有第三方提供的。像Mysql常用的扩展有原生的mysql库,也可以使用增强版的mysqli扩展,还可以使用PDO进行连接与操作。不同的扩展提供基本相近的操作方法,不同的是可能具备一些新特性,以及操作性能可能会有所不同。

1.mysql扩展进行数据库连接的方法:

$link = mysql_connect('mysql_host', 'mysql_user', 'mysql_password');
例子:
<?php   $link = mysql_connect('127.0.0.1', 'code1', '') or die('数据库连接失败');   mysql_select_db('db_name');   mysql_query("set names 'utf8'");   $result = mysql_query('select * from user limit 1');   $row = mysql_fetch_assoc($result);   print_r($row);

2.mysqli扩展:

    $link = mysql_connect('mysql_host', 'mysql_user', 'mysql_password');
  例子:(面向过程风格)
  <?php    $link = mysqli_connect('127.0.0.1', 'user', 'pwd' ) or die( '连接失败' );    mysqli_select_db( $link, 'db_name');    mysqli_query( $link, "set names 'utf8' ");    $result = mysqli_query( $link, 'select * from user limit 1');    $row = mysqli_fetch_row($result);    print_r($row);

面向对象风格:
<?php header("content-type:text/html; charset=utf8"); define("HOST",'localhost'); define("USER",'root'); define("PWD",'root'); define("DBNAME",'bookstore'); //面向对象风格 $db = new mysqli(HOST,USER,PWD,DBNAME); /* *$db = new mysqli(); *$db->connect(HOST, USER, PWD,DBNAME); *$db->close(); */ if($db->connect_errno){ echo '连接失败!'.mysqli_connect_errno().':'.mysqli_connect_error(); exit(); } $db->query("set names utf8 "); //$db->set_charset('utf8'); $result=$db->query("select * from user "); $row = $result->fetch_array(); var_dump($row);

 

3.PDO扩展:

$dsn = 'mysql:dbname=testdb;host=127.0.0.1';
$user = 'dbuser';
$password = 'dbpass';
$dbh = new PDO($dsn, $user, $password);
例子:
<?php
  $dsn = 'mysql:dbname=db_name;host=127.0.0.1';
  $user = 'root';
  $password = '';
  $dbh = new PDO($dsn, $user, $password) or die('连接数据库失败');
  $dbh->query( "set names 'utf8' " );
  $result = $dbh->query('select * from user limit 1');
  $row =$result->fetch(PDO::FETCH_ASSOC); //设置输出数组形式
  print_r($row); 

/*PDO数组样式:
*要注意的是,这里包括mysql_fetch_...()函数,这里的参数是一个结果集,而不是一个SQL语句
*select/desc/describe/show/explain执行成功返回mysqli_result对象,执行失败返回false,对于其余SQL语句的执行的返回值是一个布尔类型的值 *PDO::FETCH_ASSOC-->关联数组mysql_fetch_assoc($result) *PDO::FETCH_NUM-->数字索引数组mysql_fetch_row($result) *PDO::FETCH_BOTH-->两者数组形式都有,默认。mysql_fetch_array() *PDO::FETCH_OBJ-->按照对象的形式$arr=mysql_fetch_object($result) mysql_fetch_object()得到对象结果集,调用和对象调用属性一样:$arr->name;//调用改对象中的name属性 *PDO::FETCH_BOUND-->以布尔值的形式返回 *PDO::FETCH_LAZY-->以关联数组,数字数组,对象3钟形式返回结果
*/
posted @ 2015-04-18 11:39  L_M_S  阅读(194)  评论(0编辑  收藏  举报