浅学php和MySQL

一、什么是php

它是通过访问服务器得形式打开, 不能本地直接打开
完整路径必须全英文,是因为解析问题
PHP是"PHP Hypertext Preprocessor"

  1. apache 服务器, html 文件支持中文, php 文件不支持中文
  2. nginx 服务器, html 和 php 文件都不支持中文

二、php能够做什么

  • 创建、打开、读取、写入、删除以及关闭服务器上的文件
  • 接收表单数据
  • 发送并取回 cookies
  • 添加、删除、修改数据库中的数据
  • 限制用户访问网站中的某些页面
  • 对数据进行加密

三、语法

  1. 脚本以 <?php 开头,以 ?>
  2. 文件通常包含 HTML 标签以及一些 PHP 脚本代码。
  3. 注释
    // 这是单行注释
    #这也是单行注释
    /块注释/
  4. 大小写敏感
    -在 PHP 中,所有用户定义的函数、类和关键词(例如 if、else、echo 等等)都对大小写不敏感
    -所有变量都对大小写敏感。函数名不区分大小写
  5. header(“content-type:text/html;charset=utf-8”);
php运行
  • php 代码书写在一个 .php 后缀得文件里面
    • echo所书写的内容,写在哪,结构就显示哪
  • 必须写在 php 标签对内部 <?php ?>
  • 扩展名无所谓,里面内容只要是html,都会被解析。

如果没有解析PHP的环境,就不会展示php内容,变为下载php文件

四、变量

定义
  • 变量以 $ 符号开头,其后是变量的名称
  • 变量名称必须以字母或下划线开头
  • 变量名称不能以数字开头
  • 变量名称只能包含字母数字字符和下划线(A-z、0-9 以及 _)
  • 变量名称对大小写敏感($y 与 $Y 是两个不同的变量)
作用域
  1. local(局部)函数内的变量是局部变量
  2. global(全局)函数外的变量是全局变量
  3. static(静态)通常,当函数完成/执行后,会删除所有变量。定义静态的变量仅有在第一次进入时定义并且赋值,第二次执行时,不在执行。函数执行完成后 静态变量不会被销毁
function abc(){
     static $a=5;
     $a++;
     echo $a;
 }
 abc();//6
 abc();//7
 abc();//8
  1. 全局变量 :在函数内的变量,如果需要声明或者使用函数外的变量可以使用global
   $x=3;
 function abc(){
     global $x;
     $x=6;
     echo $x;
 }
 abc();
 echo $x;
  1. $GLOBALS[index] 的数组中存储了所有的全局变量。
   $x=3;
 function abc(){
    $GLOBALS["x"]=6;
     echo $GLOBALS["x"];
 }
 abc();
 echo $x;
$a=10;
$b=30;
function get_number(){
global $b;//当前函数中所有b变量都是全局
$a=20;
echo $GLOBALS["a"];//临时使用,函数内还有同名的局部变量
echo "<br>";
echo $a;//局部变量
echo "<br>";
echo $b;//全局变量
$b=40;//修改了全局的b
}
get_number();
echo "<br>";
echo $b; 
  1. 超全局变量
  • $_SERVER 这种超全局变量保存关于报头、路径和脚本位置的信息。
  • $_REQUEST 用于收集 HTML 表单提交的数据。
  • $_POST 广泛用于收集提交 method=“post” 的 HTML 表单后的表单数据。
  • $_GET 也可用于收集提交 HTML 表单 (method=“get”) 之后的表单数据。
  • $_FILES 从客户计算机向远程服务器上传文件。
  • $_ENV 通过环境方式传递给当前脚本的变量的数组。例如当前计算机名称
  • $_COOKIE 变量用于取回 cookie 的值。
  • $_SESSION 存储和取回 session 变量的正确方法是使用 PHP $_SESSION 变量
  1. 魔术变量
    LINE 返回当前代码在php中的行数,用于调试php脚本;
    FILE 返回当前文件的完整路径(绝对路径)
    FUNCTION 返回当前函数的函数名
    CLASS 返回当前的类名

五、打印输出

  1. echo 字符,数值,布尔 都会转换成字符串, 能够输出一个以上的字符串
  2. print 和echo类似,但只能输出一个字符串,并始终返回 1
	 echo print $a;//51
	先打印print $a,再用echo打印print返回的值
  1. print_r(你要输出得内容); //可以将数组或者对象转换为字符串返回
  2. var_dump(你要输出的内容); //输出数据类型和值
var_dump(5);  //int 5

六、条件和循环语句

  1. if () {}
if ($a > 0) {
    } elseif ($a === 0) {
      // 注意 **elseif中间没有空格**
    } else {
    }
  1. switch () {}
switch ($i) {
    case 1:
        break;
    case 2:
        break;
        break;
    default:
}
  1. for () {}
echo "<ul>";
for($i=0;$i<10;$i++){
    // echo "<li>".$i."</li>"; //【.】是拼接
    echo "<li>{$i}</li>";
}
echo "</ul>";
  1. while () {}
$i=0;
$s=0;
while($i<100){
  $s+=$i;
  $i++;
}
  1. do {} while ()
do{
    $s+=$i;
    $i++;
  }while($i<100);
  1. for遍历索引数组,foreach遍历关联数组

七、数组和对象

数组
  1. 索引型数组
    a r r = a r r a y ( 数 据 1 , 数 据 2 , 数 据 3 , . . . ) ; ‘ arr = array(数据1, 数据2, 数据3, ...); ` arr=array(1,2,3,...);arr=[4,6,8,10]`
  2. 关联型数组
    a r r = a r r a y ( k e y = > v a l u e , k e y 2 = > v a l u e 2 , . . . ) ‘ arr = array( key => value, key2 => value2, ... ) ` arr=array(key=>value,key2=>value2,...)arr1=array(“name”=>“xietian”,“agr”=>30)`
  3. 数组遍历
  • for循环
$arr=[1,2,3,4,5,6];
for($i=0;$i<count($arr);$i++){
    echo $arr[$i];
    echo "<br>";
} 
  • foreach循环
$arr=array[1,2,3,4,5,6];
foreach($arr as $value){
    echo $value."</br>";
}
$arr1=array("name"=>"xietian","age"=>30,"sex"=>"男");

var_dump($arr1);
foreach($arr1 as $key=>$value){
    echo $key.":".$value."<br>";
}
  1. 数组方法
  • count( )
    函数用于返回数组的长度(元素的数量)
<?php
$cars=array("Volvo","BMW","Toyota");
echo count($cars);
?>

访问数组里面的成员,数组名[索引]/数组名[key]

JSON类型数据 json_encode() json_decode()

对象

用箭头来代替点 对象->属性

class Box
{     
    /* 成员变量 */
    var $a = 1;
    /* 成员函数 */
    function Box()
    {
    }
    function play()
    {
        echo $this->a;
    }
}
new 实例化对象  $b=new Box();

随机数 mt_rand(min,max)

八、前后端通信

  1. 前端与服务端通信的消息 —— 报文:消息头 - 消息体
    • 请求头:header("content-type:text/html")
    • 消息体:就是你要请求的内容
  2. 前端发送消息给服务端 —— 请求request
  3. 服务端返回消息给前端 ——响应response

GET和POST

  1. GET在浏览器回退时是无害的,而POST会再次提交请求
  2. GET产生的URL地址可以被Bookmark,而POST不可以。
  3. GET请求会被浏览器主动cache,而POST不会,除非手动设置。
  4. GET请求只能进行URI编码(不是URL),而POST支持多种编码方式。
  5. GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留。
  6. GET请求在URL中传送的参数是有长度限制的,而POST没有。
  7. 对参数的数据类型,GET只接受ASCII字符,而POST没有限制。
  8. GET比POST更不安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息。
  9. GET参数通过URL传递,POST放在Request body中。
  10. GET产生一个TCP数据包;POST产生两个TCP数据包(fireFox的POST只发送一次)

Mysql数据库

  1. 建库
    默认账号和密码都是root
    1. 点击数据库 —— 输入库名 —— 创建
    2. 进入库 —— 输入表名/字段数 —— 执行(创建)
  2. 类型 - 字符串
    1. CHAR (规定长度) 【效率最高】
    2. VARCHAR (设定最低长度) 【第二】
    3. TEXT (不限长度)【最低】
    4. int 整数
  3. 长度/值
    字符长度,中文2个字符等于一个字
  4. 整理
    1. 编码越少,速度越快ascii_bin
    2. 中文用utf-8_bin
  5. 索引
    1. 主键(PRIMARY):通常表中只有一个主键,通常是pid,主键就是唯一标识
    2. 唯一(UNIQUE):不能重复、通常是用户名
  6. A_I
    自增,有数据增加就会自动pid的的值
名字类型长度默认整理A_I
pidint11
uservarchar30ascii_bin
passwordvarchar18ascii_bin
namevarchar8utf8_bin
ageint3
sexchar2utf8_bin
telchar11ascii_bin
emailvarchar30ascii_bin

MySQL语法

  1. insert
INSERT INTO `student` (`字段1`, `字段2`, ...) VALUES(数据1, 数据2, ...)
// 在插入的时候, 主键可以不写

// 1. 全字段插入(NULL是主键)
$sql = 'INSERT INTO `student` VALUES(NULL "谢柳宁", 18, "男", "2020", 100)';

// 2. 选取字段插入
$sql = 'INSERT INTO `student` (`name`, `score`) VALUES("谢柳宁", 59)';
  1. delete
DELETE FROM `student` WHERE 条件

// 删除的语句
$sql = 'DELETE FROM `student` WHERE `id`>1025';

  1. updata
UPDATE `student` SET 要修改的字段=要修改的值 WHERE 条件

// 修改一条数据
$sql = 'UPDATE `student` SET `gender`="女" WHERE `id`>1000';
  1. select
1. 查询所有
// SELECT * FROM `表`
$sql = 'SELECT * FROM `student`';

2. 查询所有数据, 但是只要几个字段
// SELECT 字段1, 字段2, ... FROM `表`
$sql = 'SELECT `name`, `age` FROM `student`';

3. WHERE 条件
// 按照条件查询
$sql = 'SELECT * FROM `student` WHERE `age`>28';

4. AND// 并列条件查询
$sql = 'SELECT `score`, `age` FROM `student` WHERE `score`>90 AND `age`>25';

5. OR// 或者条件查询
$sql = 'SELECT `age` FROM `student` WHERE `age`>28 OR `age`<20'

6. LIKE  %  模糊查询
// 必须是 三xxx
$sql = 'SELECT `name` FROM `student` WHERE `name` LIKE "张%"';
// 必须是 xxx三
$sql = 'SELECT `name` FROM `student` WHERE `name` LIKE "%三"'
// 包含三就可以
$sql = 'SELECT `name` FROM `student` WHERE `name` LIKE "%三%"'
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值