BLOG
Enjoy when you can, and endure when you must.
NOV 20, 2012/后端开发与架构
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);

COMMENTS
LEAVE COMMNT