PHP
语法
输出
echo
//输出数字或字符串
print_r()
/输出复杂数据类型
var_dump()
//输出变量详细信息
引入
include();
//引入其它文件
EG:include(‘index.php’);
require();
EG:require(‘index.php’);
//引入其它文件,其中include引入文件出错的时候会继续执行而require会终止
参数传递
在表单form的method中设置其以什么方式传递参数
GET参数传递
通过URL传递参数,参数值包含在URL中
print_r($_GET);
//打印GET传递过来的参数
POST参数传递
print_r($_POST);
//打印POST传递过来的参数
$user = $_POST[‘username’];
echo $user;
//将POST中的username参数传递给$user并打印
if(!empty($_POST)){
$usesr = $_POST[‘username’];
echo $user;
}
//判断是否传递过来了参数并打印出相应的参数值
数组
两类数组
先声明再赋值
<?php
$arr = array();
$arr[0] = ‘this’;
$arr[1]=’that’;
$arr[2]=’what‘;
?>
声明直接赋值
<?php
$arr = array(’who‘,’am’,’i’);
?>
关联数组
<?php
$arr = array(‘first’=>’who‘ , ’second’=>’am’ , ’third’=>’i’);
?>
数字数组
<?php
$arr = array(0=>’who‘,1=>’am’,2=>’i’);
?>
下标由数字组成,必须从0开始依次递增,中间如果有其它键值就是关联数组
foeach循环
<?php
$arr = array(0=>’who‘,1=>’am’,2=>’i’);
foreach($arr as $i=>%$v){
echo $arr[$i];//通过下标访问元素,其中$i在数组中循环
echo $v;//将其下标的值传递给了$v,输出其$v
}
?>
is_array()判断函数
<?php
$arr = array(0=>’who‘,1=>’am’,2=>’i’);
if(is_arry($arr)){
echo ‘OK’;
}
?>
用于判断是否为数组
in_array()判断函数
<?php
$arr = array(0=>’who‘,1=>’am’,2=>’i’);
if(in_arry(‘am’,$arr)){
echo ‘there be’;
}
else{
echo ‘no’;
}
?>
判断数组中是否存在某个值
文件上传
表单设置 enctype=”multipart/form-data”属性
获取上传文件信息,将文件保存到指定的文件夹
$_FILES数组
数组所包含的信息
Array(
(
[name]=>picture.png
[type]=>image/png
[tmp_name]=>D:\wamp64\tmp\php324.tmp
[error]=>0
[size]=>5012
)
)
[name]:原始文件名
[type]:文件类型
[tmp_name]:临时目录和目录中的文件名
[error]:错误
[size]:文件大小
move_uploaded_file()函数
move_uploaded_file($_FILES‘profile’,’picture.png’);
将上传的临时目录里面的文件保存到指定位置
$last = strrpos($_FILES[‘profile’],[‘name’],’.’);//获取”.”在字符串中的位置
连接数据库
SQL语句
1.关键词大写,如UPDATE
2.字段名称需要实际存在,需要数据表中实际存在的字段名称
3.若为非必填字段,可以为空也可以不写
4.字符串需要以引号包含,数字则不需要
INSERT
INSERT INTO ‘表名’(‘字段名-1’,’字段名-2’,’字段名-3’) VALUES(‘值-1’,’值-2’,’值-3’)
INSERT INTO `userinformation`(`userid`, `username`, `password`, `nickname`) VALUES ('3','Mic','202','TES')
SELECT
SELECT ‘字段名’ FROM 表名
WHERE [条件]
SELECT `userid`, `username`, `password`, `nickname` FROM `userinformation` WHERE 'username' = 'Mia'
条件语句 | |||
---|---|---|---|
语句 | 说明 | 示例 | |
AND | 并列条件 | ||
OR | 或者条件 | ||
LIKE | 模糊查找 | SELECT * FROM ‘userinfomation’ LIKE ‘%ad%’ | |
ODER BY | ASC | 升序排列 | |
DESC | 降序排列 | ||
LIMIT | 限制条数 |
UPDATE
更新之前一定要确保是否加了条件否则影响全部数据
UPDATE `userinformation` SET `password`='200' WHERE userid=0
//其中数字不需引号
UPDATE `userinformation` SET password=md5('200') WHERE username='Mia'
//MD5加密
DELETE
DELETE FROM `userinformation` WHERE userid=4
mysqli_connect()函数
mysqli_connect(‘localhost’,’root’,’webdatabase’);
//示例中数据库没有密码则无需输入密码
//输入参数说明mysqli_connect(‘地址’,’数据库用户名’,’数据库密码’,’数据库名称’);
mysqli_affected_rows()函数
判断数据库表格是否有影响相应的行数
<?php
mysqli_query($mysql_con,$sql);
mysqli_affected_rows($mysql_con);
?>
连接数据库示例
注意SQL语句中的不是引号是``符号
连接数据库
<?php
$mysql_con = mysqli_connect(‘localhost’,’root’,’webdatabase’);//将数据库连接实例化
//其中密码部分可以以’’代替也可以直接不填
print_r($mysql_con);//打印数据库连接信息
?>
设置连接编码
<?php
mysqli_query($mysql_con,’set names utf8’);
?>
执行SQL数据
<?php
$sql = “SELECT * FROM `webdatabase`”;
$result = mysqli_query($mysql_con,$sql);
print_r($result);//打印执行SQL语句后返回的结果集
?>
转换结果集
<?php
$result_array = mysqli_fetch_assoc($result);//其中每转换一次就会偏移一行
print_r($result_array);
?>
SESSION
SESSION用于保存当前用户在当前网站的当次会话的临时记录,会话中断以前都可以随时调用该SESSION记录,其中用户即当前浏览器;网站指主域名即https://主域名/之间的域名;当次会话指浏览器以及会话没有超时。
可以利用SESSION在不同页面之间传递参数
SESSION写入
<?php
session_start();//开启SESSION
$_SESSION[‘user’] = ‘Mia’;//写入SESSION
?>
SESSION读取
print_r($_SESSION)
print_r($_SESSION['item'])
SESSION销毁
session_destroy();//销毁所有SESSION
unset($_SESSION[‘user’]);//销毁指定SESSION
AJAX
Asynchronous Javascript And XML异步JS和XML同步技术
jQuery中文手册地址:http://jquery.cuishifeng.cn/
前端jQuery触发AJAX
示例步骤
1.引入JQuery文件
2.绑定触发事件(按键弹起)
3.触发AJAX
4.配置AJAX参数
JQuery AJAX函数参数表 | ||
---|---|---|
参数名 | 说明 | 示例 |
type | 参数提交方式 | $.ajax({ type: "POST", //参数传递的方式(GET/POST) url: "check.php", //服务器端的响应文件地址 data: {"username":username}, //参数 success: function(msg){ //响应成功之后调用的函数 if(msg == 1){nextspan($user,'可用',0,1);} else{nextspan($user,'禁用',1,1);} } }); |
url | 服务器处理请求的页面地址 | |
data | 传递的参数 | |
datatype | 服务器返回的数据类型 | |
success | 相应成功的回掉函数 |
5.根据需要添加return false
服务端响应
<?php//验证用户名是否重复
$username = $_POST['username']; //获取传递的参数
$mysqli = mysqli_connect('localhost','root','','webchat'); //登录数据库
mysqli_query($mysqli,'set names utf8'); //防止乱码
$sql = "SELECT * FROM `user` WHERE `username`='$username'"; //SQL
$result = mysqli_query($mysqli,$sql); //执行SQL
$r = mysqli_fetch_assoc($result); //将结果转换为数组
if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && empty($r))
{echo 1;}
else
{echo 0;}
?>
返回JSON
<?php
$mysqli = mysql_connect("localhost","root","password","web");
mysqli_query($mysqli,"set names utf-8");
$sqli = "SELECT * FROM `chat`";
$res = mysqli_query($mysqli,$sqli);
$row = array();
while ($r = mysqli_fetch_assoc($res)) {
$row = $r;
}
echo json_encode($row);
?>
WAMP
WAMP开启成功之后直接打开localhost:80地址
httpd.conf | Appache配置文件 |
---|---|
php.ini | PHP配置文件 |
my.ini | MySQL配置文件 |
将PHP程序(文件) 放在www directory,通过在浏览器输入相应的地址即http://127.0.0.1或http://localhost再访问相应的文件
PHP MyAdmin数据库
PHP MyAdmin是WAMP自带的一个MySQL数据库管理软件,相当于一个精简版的MySQL
新建数据库
在浏览器中打开控制台界面,找到PHP MyAdmin,默认用户名为root,密码为空,在登录界面输入账号密码之后进入到管理台界面,点击”新建”
设置”数据库名称”以及”排序规则”,其中排序规则指的是编码格式,选择”utf8_general_ci”防止中文乱码
新建数据表
输入表的名称以及表的字段数,点击”执行按钮”
设置字段参数值
其中设置”userid”为”PRIMARY”主键,即为唯一的索引,将其”AI”选项勾上之后,在弹出框点击”执行”,其它参数设置如下图。其中密码加密使用MD5,MD5加密之后为32位。设置完成之后点击”保存”
数据表创建完成
数据表插入数据
选择相应的数据表,点击”插入”按钮,输入相应的数据之后点击”执行”
数据表添加字段
常见故障
WAMP局域网中的主机无法访问
You don’t have permission to access / on this server
1.检查防火墙
2.开启WAMP Online
3.httpd.conf中设置目录权限
apache 的 httpd.conf文件,将其中的 Require local 修改成 Require all granted
apache的httpd-vhosts.conf. 找到 <VirtualHost *:80>节点上的所有虚拟站点,将其中的 Require local 都改成 Require all granted
端口号被占用
netstat -noa
查看应用进程是否有占用80端口号,如果已占用则打开httpd.conf文件将所有的80端口修改成其它端口号