本文已参与「新人创作礼」活动,一起开启掘金创作之路
PHP
一、php操作数据库
1、php连接数据库
$mysql=new mysqli(服务器域名,用户名,密码,数据库名称,端口号);
eg:$mysql=new mysqli('localhost','root','','wuif2002',3306);
2、检测数据库是否连接成功
if($mysql->connect_error){
echo "数据库连接失败".$mysql->connect_error;
exit;
}
echo "数据库连接成功";
connect_error:返回连接错误的错误描述。
exit:终止代码,退出当前脚本。
3、执行sql语句
//$sql="select * from info"
$sql="delete from info where id=4"
$mysql->query($sql); //向服务器发送sql语句
4、执行查询的sql语句
(1)查询结果集中的第一条
$result=$mysql->query($sql)->fetch_assoc(); //关联数组
(2)查询结果集中的全部内容
$result=$mysql->query($sql)->fetch_all(MYSQL_ASSOC); //二维数组 索引数组套关联数组
5、影响的行数
$mysql->affected_rows; //返回执行语句的影响行数
二、汉字乱码
1、设置数据库的查询字符集
$mysql->query("set names utf8");
2、设置浏览器解析html文件中的编码
header('Content-type:text/html;charset=utf8');
3.header()函数:
-
设置文件类型与编码格式
header('Content-type:text/html;charset=utf8'); -
跳转网页
header("location:admin/login");
三、文件引入
include "./index.php";
include "./index.html";
四、php文件接收数据的方式
1、get方式
(1)通过地址栏传输 delete.php?id=10``insert.php?name='张三'&age=20
(2)通过$GET接收数据。数据格式为关联数组
五、数组
1、索引数组
(1)创建索引数组的方法: 自动分配 ID 键(ID 键总是从 0 开始):
$cars=array("Volvo","BMW","Toyota");
人工分配 ID 键 :
$cars[0]="Volvo";
$cars[1]="BMW";
$cars[2]="Toyota";
(2)访问:获取数组的长度 - count() 函数
count() 函数用于返回数组的长度(元素的数量)
$arr = array(1,32,4,56);
echo count($arr);
(3)遍历
<?php
$cars=array("Volvo","BMW","Toyota");
$arrlength=count($cars);
for($x=0;$x<$arrlength;$x++)
{
echo $cars[$x];
echo "<br>";
}
?>
2、关联数组
-
定义: 关联数组是使用您分配给数组的指定的键的数组 。
-
创建数组:
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43"); 或 $age['Peter']="35"; $age['Ben']="37"; $age['Joe']="43"; -
遍历关联数组
<?php $age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43"); foreach($age as $x=>$x_value) { echo "Key=" . $x . ", Value=" . $x_value; echo "<br>"; } ?>
3.数组排序函数
| 函数 | 描述 |
|---|---|
| sort() | 对数组进行升序排列 |
| rsort() | 对数组进行降序排列 |
| asort() | 根据关联数组的值,对数组进行升序排列 |
| ksort() | 根据关联数组的键,对数组进行升序排列 |
| arsort() | 根据关联数组的值,对数组进行降序排列 |
| krsort() | 根据关联数组的键,对数组进行降序排列 |
六、可编辑表格
1.数据渲染:
(1).查询数库中的所有数据
(2).数据渲染 HTML页面 for循环 数据遍历 HTML与PHP混排
2.添加:
(1).表单收集数据 action method =“post” name
(2).接收数据 $_post
(3).添加到数据库中:链接数据库,$SQL insert 执行SQL语句 ,提示
3.删除:
(1).删除按钮,跳转删除的PHP文件,利用get方式拼接id
(2).接收id $_GET
(3).删除数据库中的数据:链接数据库,$SQL delete 执行SQL语句 ,提示
4.修改:
(1).查看按钮,跳转查看的PHP文件,利用get方式拼接id
(2).查询本条数据,按照表单方式渲染
(3).修改数据
(4).表单提交 action method post name
隐藏域id:
<input type="hidden" name="id" value="<?php echo $result['goods_id']?>" >
(5).接收数据 $_post
(6).修改数据库中的数据:链接数据库,$SQL updata 执行SQL语句 ,提示
七、ajax无刷新可编辑表格
1.数据渲染:
(1).文件:html布局,js:ajax请求,数据渲染,PHP:请求数据可中的数据
(2).js文件:
- 发送ajax请求,响应到数据,字符串-》数组 JSON.parse()
- 数据渲染的函数render()
(3).PHP文件:
- 连接数据库,创建SQL,执行查询功能
- 数据传送到前台:PHP给前台传送数据只能用echo输出一次
echo json_encode($result);
2.查询数据:
(1).html页面:表单
(2).js文件中:
- 按钮点击,屏蔽submit按钮的默认行为,获取表单的值
- 发送ajax请求,有条件的查询数据,get方式,查询字符串querystudent.php?name=张三,sex=男;
- name=“”,sex=“” es6给参数添加默认值
(3).PHP文件中
- 获取数据,$_GET
- 修改SQL语句,模糊查询:like
- empty()判断变量的值是否为空
3.删除数据:
(1).html页面:删除按钮
(2).js文件:
- 按钮点击事件,事件委派(动态创建),e.target nodename id
- ajax请求 get 查询字符串 id
- 提示, alert,节点中移出元素的方法
(3).php文件:
- 获取数据,$_GET
- 创建SQL,执行, success fail
4.添加数据:
(1).html页面:
-
form表单,屏蔽,name
(2).js文件:
- 按钮点击事件,获取数据,改变格式
- 发送ajax请求,post
- 提示,成功,向页面中添加一条数据
(3).php文件:
- 获取数据,$_post
- 创建SQL,执行,success fail
七、ajax
1.概念
(1)含义:
异步的JavaScript与XML,在不刷新网页的情况下,局部更新数据。(不进行页面跳转)
(2)原理:
在客户端与服务器之间添加了ajax中间层,发送数据与接收数据
(3)核心对象:xmlhttprequest
let ajax=new XMLHttpRequest(); //1.实例化对象
ajax.open("get","demo.php",true); //2.打开请求: 方式,路径,是否异步
ajax.send(null); //3.发送请求
ajax.onreadystatechange=function(){ //4.添加异步监听事件
if(ajax.readyState==4 && ajax.status==200){ //连接服务器成功,服务器响应成功
console.log(ajax.response); //6.服务器响应的内容
}
}
2.实现:jQuery
(1).引入jQuery
$.ajax({
url:"insert.php" //发送php文件
"type":"post"; //方式
data:"name=张三&age=18";// 数据
success:function(res){ //成功时执行回调函数
//res 返回信息
}
})
八、PHP中数据交换格式(发给js) json
1.json_encode()
将数据转换为字符串,发给前台时候使用
九.
1.$_SERVER保存服务器的相关信息
$_SERVER['REQUETS_METHOD'] 获取当前页面的请求方式 get
2.h5表单属性
pattern="[a-z]{3,5}" 表单数据进行正则验证
3.md5()数据库加密
4.count($arr) 计算数组的长度
5.substr(string,start,end) 字符串的截取
6.$mysql->close() 关闭数据库
7.is_array($arr) 判断一个变量是否是数组,返回值为true或false
8.is_string($str)判断一个变量是否是字符串
9.isset(变量) 检测变量是否存在,存在返回true,不存在返回false
10.unser(变量) 销毁变量
11.unlink(相对路径) 删除图片
十:图片上传
1.form标签中规定资源上传类型 enctype="multipart/form-data"
2.PHP文件中,接收资源$_FILES
3.数据解析:
'name' => string '同步与异步.png' (length=19)
'type' =>string 'image/png' (length=9)
'tmp_name' =>string 'D:\wamp\wamp\php6EA6.tmp' (length=28) //临时路径
'error' =>int 0 //0后台能接收到
'size' =>int 39893
4.思路:
$file['tmp_name'] =>upload/20200428/ 时间戳.随机数.类型
1.创建日期的文件夹
2.设置文件名 时间戳.随机数.类型
3.移动文件
5.代码
- date("Ymd") //获取年月日时分秒,格式化时间戳
- is_dir(文件夹) 判断文件夹是否存在
- mkdir("../upload/".$datedir) 创建文件夹
- time() 时间戳
- mt_rand(0,999) 获取随机数
- explode("/",$file['type']) 将字符串按照表示散打为数组
- move_uploaded_file(临时路径,移动路径) 移动文件 临时路径 移动到服务器上的路径 返回值是true或false