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);
____________________________
推荐阅读:
最新文章
- listview指定某item的点击效果
- JQuery源码解析--callbacks
- android.hardware.Camera类及其标准接口介绍
- bootstrap tooltip 显示提示信息
- Oracle错误:ORA-01033
- hust 1010 最短循环节点
- bash shell漏洞及测试
- 重新认识Box Model、IFC、BFC和Collapsing margins
- HTML邮件注意事项
- .NET 多语言支持解决方案 (转)
- 清华集训2014 day1 task1 玛里苟斯
- Android 音频管理器AudioManager
- javascript this的一些误解
- OO第二单元电梯线程系列总结作业
- gtest 参数化
- node.js中使用socket.io + express进行实时消息推送
- 转载:磁盘目录(1.3.3)《深入理解Nginx》(陶辉)
- elasticSearch6源码分析(11)client
- 洛谷P2564 生日礼物【单调队列】
- .net 基于Jenkins的自动构建系统开发
热门文章
- java 加解密
- sublime text3 在 14.04.1-Ubuntu 下的中文输入
- SSIS - 6.序列容器和优先约束
- Vue 学习笔记 — css属性计算的问题
- Eclipse显示行号
- [Swift]LeetCode581. 最短无序连续子数组 | Shortest Unsorted Continuous Subarray
- [Swift]LeetCode841. 钥匙和房间 | Keys and Rooms
- 交叉编译 tcpdump
- 【Docker】(2)---仓库、镜像、容器
- 一段奇葩Javascript代码引发的思考