PHP与MySQL(15)
Posted xiukang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP与MySQL(15)相关的知识,希望对你有一定的参考价值。
PHP配置
- 引用mysqli扩展
extension = php_mysqli.dll
- 不需要绝对路径
如果不启用,那么引用mysqli扩展必须使用绝对路径引用
extension_dir = "ext"
建立和断开链接
$mysqli = new mysqli();//实例化mysqli类 $mysqli -> connect("localhost","root","123");//链接数据库 $mysqli -> select_db("text");//选择text数据库 $mysqli -> close();//关闭链接
获取错误信息
- 获取错误码
$mysqli = new mysqli("localhost","root","123","test"); echo $mysqli -> errno;//没有错误返回0
- 获取错误信息
$mysqli = new mysqli("localhost","root","123");//实例化mysqli类 $mysqli -> select_db("text");//选择text数据库 if($mysqli -> errno){ echo $mysqli -> error;//Unknown database ‘text‘ 没有text数据库 } $mysqli -> close();//关闭链接
- 在单独的文件中存储链接信息
//mysql.connect.php文件 <?php $mysqli = new mysqli("localhost","root","123","test"); ?>
- 在必要时包含此文件
<?php include "mysql.connect.php";//调用mysql.connect.php文件 ?>
与数据库交互
- 向数据库发送查询
·获取数据
query()方法
mysqli_store_result 较高的内存和处理需求,查询整个结果集(默认)
mysqli_use_result 较低的内存需求,查询几行结果集
$mysqli = new mysqli("localhost","root","123","test");//链接数据库服务器并选择test数据库 $query = "select id, name, age from xiu";//创建查询语句 $result = $mysqli -> query($query,MYSQLI_STORE_RESULT);//$query()方法负责将query发送到数据库 while(list($id,$name,$age) = $result -> fetch_row()){//fetch_row()方法将获得的值生成一个数组 printf("%d*%d*%d",$id,$name,$age); } $mysqli -> close();//关闭数据库链接
·插入、删除或更新数据
$mysqli = new mysqli("localhost","root","123","test");//链接数据库服务器并选择test数据库 $query = "alter table xiu add column birdate date";//创建查询语句 $mysqli -> query($query);//$query()方法负责将query发送到数据库 echo $mysqli -> affected_rows;//提示影响的多少行 $mysqli -> close();//关闭数据库链接
·释放查询内存
有时可能会获取一个特别大的结果集,会占用大量内存,使用free()方法释放占用的内存
$mysqli = new mysqli("localhost","root","123","test");//链接数据库服务器并选择test数据库 $query = "select id, name, age from xiu";//创建查询语句 $result = $mysqli -> query($query,MYSQLI_STORE_RESULT);//$query()方法负责将query发送到数据库 while(list($id,$name,$age) = $result -> fetch_row()){//fetch_row()方法将获得的值生成一个数组 printf("%d*%d*%d",$id,$name,$age); } $mysqli -> free();//释放内存
- 解析查询结果
·将结果放在对象中
fetch_object()方法将结果集放入对象中
$mysqli = new mysqli("localhost","root","123","test");//链接数据库服务器并选择test数据库 $query = "select id, name, age from xiu";//创建查询语句 $result = $mysqli -> query($query);//$query()方法负责将query发送到数据库 while($xiu = $result -> fetch_object()){//fetch_object()方法将结果集放入对象中 $id = $xiu -> id; $name = $xiu -> name; $age = $xiu -> age; printf("id:%d,name:%s,age:%d",$id,$name,$age); } $mysqli -> close();//关闭数据库链接
·使用索引数组和关联数组获取结果
fetch_array()将结果集放入数组
MYSQLI_ASSOC 将行作为一个关联数组返回,键由字段表示,值由字段内容表示
MYSQLI_NUM 将行作为一个数字索引数组返回,元素的属性有查询中的顺序决定
MYSQLI_BOTH 将行作为关联数组和数组索引数组返回
$mysqli = new mysqli("localhost","root","123","test");//链接数据库服务器并选择test数据库 $query = "select id, name, age from xiu";//创建查询语句 $result = $mysqli -> query($query);//$query()方法负责将query发送到数据库 while($xiu = $result -> fetch_array(MYSQLI_ASSOC)){//fetch_array()方法将结果集放入数组 $id = $xiu["id"]; $name = $xiu["name"]; $age = $xiu["age"]; printf("id:%d,name:%s,age:%d",$id,$name,$age); } $mysqli -> close();//关闭数据库链接
- 确定所选择的行和受影响的行
·确定返回的行数
num_rows属性返回查询了多少行数据
$mysqli = new mysqli("localhost","root","123","test");//链接数据库服务器并选择test数据库 $query = "select id, name, age from xiu";//创建查询语句 $result = $mysqli -> query($query);//$query()方法负责将query发送到数据库 echo $result -> num_rows;//num_rows属性查询返回了多少行数据 $mysqli -> close();//关闭数据库链接
·确定受影响的行数
affected_rows属性返回受insert、update或delet查询影响的行数
$mysqli = new mysqli("localhost","root","123","test");//链接数据库服务器并选择test数据库 $query = "insert into xiu values(4,‘user‘,20)";//创建查询语句 $mysqli -> query($query);//$query()方法负责将query发送到数据库 echo $mysqli -> affected_rows;//affected_rows属性返回影响的行数 $mysqli -> close();//关闭数据库链接
- 处理准备语句
捆绑参数
$mysqli = new mysqli("localhost","root","123","test");//链接数据库服务器并选择test数据库 $query = "insert into xiu values(?,?,?)";//创建查询即相对应的占位符(?) $stmt = $mysqli -> stmt_init();//创建语句对象 $stmt -> prepare($query);//为执行准备语句 $stmt -> bind_param("dsd",$id,$name,$age);//绑定参数 $id = 5;$name = "4";$age = 3; $stmt -> execute();//执行语句 $stmt -> close();//恢复语句资源 $mysqli -> close();//关闭数据库链接
·捆绑变量
$mysqli = new mysqli("localhost","root","123","test");//链接数据库服务器并选择test数据库 $query = "select id,name,age from xiu";//创建查询即相对应的占位符(?) $stmt = $mysqli -> stmt_init();//创建语句对象 $stmt -> prepare($query);//为执行准备语句 $stmt -> execute();//执行语句 $stmt -> bind_result($id,$name,$age);//绑定结果参数 while($stmt -> fetch()){//fetch()获取准备语句结果的每一行 printf("id:%d,name:%s,age:%d",$id,$name,$age); } $stmt -> close();//恢复语句资源 $mysqli -> close();//关闭数据库链接
以上是关于PHP与MySQL(15)的主要内容,如果未能解决你的问题,请参考以下文章
VSCode自定义代码片段15——git命令操作一个完整流程
VSCode自定义代码片段15——git命令操作一个完整流程
sh 翻译:“OS X 10.10 Yosemite本地开发环境,Apache,PHP和MySQL与Homebrew”15。 DNSMasq成功安装后的返回结果