词条信息

admin
超级管理员
版本创建者 发短消息   
简易百科旧版 >> PHP基础:MYSQL数据库操作 >> 历史版本

最新历史版本 :PHP基础:MYSQL数据库操作 返回词条



目录

[显示全部]

1.连接到数据库:回目录


· 面向对象的方法:


   $db = new mysqli('hostname', 'username', 'password', 'dbname');


· 面向过程的方法:


   $db = mysqli_connect('hostname', 'username', 'password', 'dbname');


· 连接结果的检查:


   if (mysqli_connect_errno()) {

       echo 'Error: Could not connect to database.';

       exit;

   }


   mysqli_connect_errno()将在连接错误时返回一个错误号,成功则返回0。


2.选择使用的数据库:回目录


· 面向对象的方法:


   $db->select_db(dbname);


· 面向过程的方法:


   mysqli_select_db(db_resource, db_name);



3.操作数据库:回目录


· 面向对象的方法:


   $query = "select * from table table_name";

   $result = $db->query($query);


   返回一个结果对象,执行失败则返回false。


· 面向过程的方法:

 

  $query = "select * from table table_name";

   $result = mysqli_query($db, $query);


   返回一个结果资源,执行失败则返回false。


4.获取结果:回目录


· 面向对象的方法:   


   $num_results = $result->num_rows;


   当使用面向对象的方法时,返回的行数保存在结果对象的num_rows成员变量中。


   for ($i=0; $i < $num_results; $i++) {

       $row = $result->fetch_assoc();

       $value = $row[key];

       ...

   }


· 面向过程的方法:


   $num_results = mysqli_num_rows($result);


   当使用面向过程的方法时,调用mysqli_num_rows()可以得到返回的行数。


   for ($i=0; $i < $num_results; $i++) {

       $row = mysqli_fetch_assoc($result);

       $value = $row[key];

       ...

   }



· 其他的方法:


   1)将结果取回到一个枚举数组中:


       · 面向对象的方法:


$row = $result->fetch_row();


       · 面向过程的方法:


  $row = mysqli_fetch_row($result);


       然后通过下标访问即可($row[0], $row[1]...)。


   2)将结果取回到一个对象中:


       · 面向对象的方法:


$row = $result->fetch_object();


       · 面向过程的方法:


 $row = mysqli_fetch_object($result);


       之后通过$row->keyname访问每个属性即可。


以上是针对数据库查询,如果是执行数据库修改时,应该使用mysqli_affected_rows()来得到受影响的数据库条目总数:


   · 面向对象的方法:


$num = $db->affected_rows;


   · 面向过程的方法:


$num = mysqli_affected_rows($db);



5.断开连接:回目录


· 面向对象的方法:


$result->free();


· 面向过程的方法:


mysqli_free_result($result);

   

这样即可释放结果集。


之后断开数据库连接:


   · 面向对象的方法:


$db->close();


   · 面向过程的方法:


mysqli_close($db);