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);

____________________________

推荐阅读:

Logstash+Kafka+ES实现日志采集系统

大数据开放平台产品落地方案

支付宝系统架构内部剖析

华为Java编程军规,每季度代码验收标准

大数据Spark与Storm技术选型

最新文章

  1. listview指定某item的点击效果
  2. JQuery源码解析--callbacks
  3. android.hardware.Camera类及其标准接口介绍
  4. bootstrap tooltip 显示提示信息
  5. Oracle错误:ORA-01033
  6. hust 1010 最短循环节点
  7. bash shell漏洞及测试
  8. 重新认识Box Model、IFC、BFC和Collapsing margins
  9. HTML邮件注意事项
  10. .NET 多语言支持解决方案 (转)
  11. 清华集训2014 day1 task1 玛里苟斯
  12. Android 音频管理器AudioManager
  13. javascript this的一些误解
  14. OO第二单元电梯线程系列总结作业
  15. gtest 参数化
  16. node.js中使用socket.io + express进行实时消息推送
  17. 转载:磁盘目录(1.3.3)《深入理解Nginx》(陶辉)
  18. elasticSearch6源码分析(11)client
  19. 洛谷P2564 生日礼物【单调队列】
  20. .net 基于Jenkins的自动构建系统开发

热门文章

  1. java 加解密
  2. sublime text3 在 14.04.1-Ubuntu 下的中文输入
  3. SSIS - 6.序列容器和优先约束
  4. Vue 学习笔记 — css属性计算的问题
  5. Eclipse显示行号
  6. [Swift]LeetCode581. 最短无序连续子数组 | Shortest Unsorted Continuous Subarray
  7. [Swift]LeetCode841. 钥匙和房间 | Keys and Rooms
  8. 交叉编译 tcpdump
  9. 【Docker】(2)---仓库、镜像、容器
  10. 一段奇葩Javascript代码引发的思考