1.php代码书写
1.php的文件名称不能是中文,不能包含空格
2.php文件只能通过服务器来访问到,不能直接打开(localhost/127.0.0.1)
3.php开头使用<?php 结尾使用?> 如果当前文件中只有php的代码,结尾标记?>可以省略
4.php代码的每一行结束都必须加;结尾
2.php的数据类型
1.整型 - 数字中的整数 //integer
2.浮点型 - 数字中的小数 //float,输出double
3.字符串 //string (正常情况下每个汉字是3个字符,跟编码有关系 - utf8)
①字符串拼接使用点操作符(.)
②双引号可以解析变量,单引号不可以
4.布尔类型 //boolean
①true和false会转换成对应的1和空
5.NULL //null (php中的null相当于js中的undefined)
6.数组 //array
7.对象 //object
8.资源 //resource
gettype():获取当前括号里面值得类型
settype():设置当前数据类型
数组的遍历:
for($i=0 ; $i < sizeof($arr1); $i++){
echo $arr1[$i] . '</br>';
}
foreach($arr2 as $key => $value){
echo $key . ':' . $value . '<br>';
}
3.php的输出方式
1.echo 12; //12
2.var_dump(12); //int(12)表示数据类型 - 值
3.print(12); //12
4.print_r(12); //12(打印变量易于理解的信息)
4.php定义变量
php定义变量: $变量名 = 值; 变量名的规则和js的一样
php定义常量: define();
5.php中数组和字符串之间的转换
JSON:前后端交互最好的数据格式(字符串)。
独立的语言
组成:简单值(数组和对象)
json格式字符串一定添加双引号。
格式中不能有分号,js关键字
JSON是一种独立的文件格式。
json_encode(被转的数据); 数组 → json字符串
json_decode(被转的数据,true/1); json字符串 → 数组
6.传参
表单默认使用地址栏传参(get),method属性可以设置传参方式(post)
(1)如果是通过地址栏传过来的数据,通过 $_GET来接收
(2)如果是post方式传参,不在地址栏显示,通过$_POST来接收
7.解决乱码
echo “<meta charset = 'utf-8'>”
1.php中在头部header设置编码方式
header("Content-type:text/html;charset=utf-8");
2.php中用iconv转码
echo iconv("GB2312","UTF-8",'中文内容');
3.在html中用<meat>标签声明
<meta http-equiv="Content-Type" content="text/html; charset="utf-8" />
8.前后端配合
(1)前端传输
1.通过表单将数据直接提交给后端,无需js代码。
需要通过form+submit+name实现
form - action:提交到哪里(后端接收数据的地址)
form - method:提交方式(post/get/delete/put) 默认就是get
(2)后端接收
$_GET['name']:获取前端通过get传输的数据
$_POST['name']:获取前端通过post传输的数据
$_REQUEST['name']:不管是get还是post都可以获取
9.php加密函数
(1)sha1()–40位
(2)md5() --32位
10.sql语句的基本操作
显示当前存在的数据库
SHOW DATABASES;
选择你所需要的数据库
USE guest;
查看当前所选择的数据库
SELECT DATABASE();
查看当前数据库有多少张表
SHOW TABLES
创建一个数据库
CREATE DATABASE book;
在数据库里创建一张表
CREATE TABLE numberone(
sid tinyint(2) unsigned not null auto_increment primary key,
url varchar(200) not null,
)DEFAULT CHARSET=utf8;//设置字符编码为utf8;
显示表的结构:DESC user;
给表插入一条数据,可以省略into
INSERT INTO users () VALUES ();
筛选指定的数据
SELECT * FROM users WHERE 条件; //users:表名
修改指定的数据
UPDATE users SET sex = '男' WHERE username='Lee';
删除指定的数据
DELETE FROM users WHERE username='Lee';
删除指定的表
DROP TABLE users;
删除指定的数据库
DROP DATABASE book
11.php操作mysql
1.连接数据库
$conn = new mysqli(主机名,用户名,密码,操作的数据库名);
2.书写mysql语句(操作数据库)
(1)添加数据:$conn->query(insert [into] 表名(栏位1,栏位2,...)values('数据1','数据2',' '...))
如果数据库设置了自动递增,这里的数据就设为null
NOW():获取当前的日期对象
(2)删除数据:$conn->query("delete from 表名 where 条件")
(3)修改数据:$conn->query("update 表名 set 栏位1=值,栏位2=值 where 条件")
(4)查询某个表中所有数据:$result = $conn->query(select * from 表名 where 条件")
$result -> num_rows:获取记录集的条数
$result ->fetch_assoc():依次获取结果集,逐条获取,返回的是数组
3.执行sql语句
$conn->query($sql);
12.php数据库连接
conn.php文件:
<?php
header('content-type:text/html;charset=utf-8');
//1.php连接mysql
//连接数据库的类:mysqli(主机名,用户名,密码,数据库名称)
define('HOST', 'localhost'); //主机名
define('USERNAME', 'root'); //用户名
define('PASSWORD', 'root'); //密码
define('DBNAME', '数据库名称'); //数据库名称
$conn = @new mysqli(HOST, USERNAME, PASSWORD, DBNAME);
//@符号:php的容错处理(一般情况是自己定义了错误类型,使用)。(js里面也有-try...catch...finally)
if ($conn->connect_error) {
die('数据库连接错误' . $conn->connect_error);
}
//如果出现中文乱码,需要设置字符编码(数据库的数据)。
$conn->query('SET NAMES UTF8'); //执行括号里面的语句
//引入数据库连接
include "conn.php";
13.php接收前端表单传输数据
<?php
header("content-type:text/html;charset=utf-8");
//引入数据库连接
include "conn.php";
if ( isset($_POST['submit']) ) {
$username = $_POST['username'];
// $pass = sha1($_POST['password']);
$password = md5($_POST['password']);
$tel = $_POST['tel'];
} else {
exit('非法操作'); //退出并输出括号里面的值。
}
// 往sql添加数据
$sql = $conn->query("insert register values(null,'$username','$password','$tel')"); //register:被添加数据的表
if($sql){
echo '添加成功';
}else{
echo '添加失败';
}
//执行sql语句
$conn ->query($sql);
14.利用数据库创建接口
接口:将数据库表里面的数据返回出来(json格式)
<?php
header('content-type:text/html;charset=utf-8');
1.php连接mysql
$conn = @new mysqli('localhost','root','root','taobao');
if ($conn->connect_error) {
die('数据库连接错误' . $conn->connect_error);
}
//如果出现中文乱码,需要设置字符编码(数据库的数据)。
$conn->query('SET NAMES UTF8'); //执行括号里面的语句
2.查询表中的所有数据
result = $conn->query("select * from taobaogoods");
3.生成接口
$arr = array(); //空数组
for ($i = 0; $i < $result->num_rows; $i++) {
$arr[$i] = $result->fetch_assoc(); //将获取的数组赋值给$arr数组。
}
4.生成的简单接口
echo json_encode($arr);
$conn->close();//关闭数据库