php+数据库

应用程序分类:

B/S:Browser(浏览器)/ Server(服务器)
C/S:Client(客户端)/ Server(服务器)

http协议:基于TCP/IP的无状态通信协议

前端(浏览器客户端)向后台(web服务器端)发送http请求获取数据

http请求报文:

一个HTTP请求报文由请求行(request line)、请求头部(header)、空行和请求数据4个部分组成

form的enctype属性为编码方式,常用有两种:application/x-www-form-urlencoded和multipart/form-data,默认为application/x-www-form-urlencoded。
当method为get时候,浏览器用x-www-form-urlencoded的编码方式把form数据转换成一个字串(name1=value1&name2=value2…),然后把这个字串追加到url后面,用?分割,加载这个新的url。
当action为post时候,浏览器把form数据封装到http body中,然后发送到server。 如果没有type=file的控件,用默认的application/x-www-form-urlencoded就可以了。 但是如果有type=file的话,就要用到multipart/form-data了。
当action为post且Content-Type类型是multipart/form-data,浏览器会把整个表单以控件为单位分割,并为每个部分加上Content-Disposition(form-data或者file),Content-Type(默认为text/plain),name(控件name)等信息,并加上分割符(boundary)。

http响应报文:

Response Headers里的Content-Type指服务器告诉浏览器相应的数据,类型一般有这三种:
application/x-www-form-urlencoded:数据被编码为名称/值对。这是标准的编码格式
multipart/form-data: 数据被编码为一条消息,页上的每个控件对应消息中的一个部分
text/plain: 数据以纯文本形式(text/json/xml/html)进行编码,其中不含任何控件或格式字符

Status-Code表示服务器发回的响应状态代码;Reason-Phrase表示状态代码的文本描述。状态代码由三位数字组成,第一个数字定义了响应的类别,且有五种可能取值。
1xx:指示信息–表示请求已接收,继续处理。
2xx:成功–表示请求已被成功接收、理解、接受。
3xx:重定向–要完成请求必须进行更进一步的操作。
4xx:客户端错误–请求有语法错误或请求无法实现。
5xx:服务器端错误–服务器未能实现合法的请求。
常见状态代码、状态描述的说明如下。
200 OK:客户端请求成功。
400 Bad Request:客户端请求有语法错误,不能被服务器所理解。
401 Unauthorized:请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用。
403 Forbidden:服务器收到请求,但是拒绝提供服务。
404 Not Found:请求资源不存在,举个例子:输入了错误的URL。
500 Internal Server Error:服务器发生不可预期的错误。
503 Server Unavailable:服务器当前不能处理客户端的请求,一段时间后可能恢复正常。

PHP

(HyperText Preprocessor)是一种创建动态交互性站点的强有力的服务器端脚本语言。

第一句 Hello World

echo

<?php
    echo 'hello word<br>'; // echo('hello word<br>');
 ?> 

die() >> 输出内容的同时结束程序

  1. 变量

    $num = 20;
    echo $num;

2)for()…

for ($i=1; $i<=5; $i++){
     echo "The number is " . $i . "<br>";
}
     
     while

     $x = 1;

     while($x < 10){
          $x++;
          echo $x;
     }
  1. if else

if (条件1){
条件1成立时执行的代码;
}elseif(条件2){
条件1不成立但条件2成立时执行的代码;
}else{
条件1条件2都不成立时执行的代码;
}

4)变量|函数:

其实PHP最经典,也是最核心的地方就是函数,PHP提供了超过一千种內建函数,参考手册点击前往;

函数:function 关键字声明函数;

函数分成两个部分,一部分是函数体,另一部分是函数调用;

函数体:function(关键字) fnName(函数名任意值) ()(小括号,其中可以有形参){
//待执行语句;

      return //如果遇到return关键字则终止函数运行,并将return后的值作为函数的返回值;

}
例:

function fnName(){
     
}

函数调用:
目的:执行函数体中待执行语句;

fnName(函数名) ()(小括号,期中可以传入实参)

例:

$x = 123
fnName($x );

超级全局变量:

这种变量在脚本的全局都可以使用:

  • $GLOBALS

  • $_SERVER

  • $_REQUEST

  • $_POST

  • $_GET

  • $_FILES

  • $_ENV

  • $_COOKIE

  • $_SESSION

以上都是超级全局变量;

$_REQUEST会收集表单提交的信息;

<html>
    <body>
        <form action="<?php echo $_SERVER['PHP_SELF'];?>">
                <!-- 利用$_SERVER获取当前脚本地址  -->
                <input type="text" name="user">
                <input type="submit" value="处理数据">
        </form>
        <?php
            if($_REQUEST){
                $userName = $_REQUEST['user'];
                echo $userName;
            }
         ?>
    </body>
</html>

$_POST|$_GET

用于收集表单数据,但是这里规定了发送方式,也就是表单上的method=‘PSOT’|method=“GET”;

> <html>
>     <body>
>         <form method="POST" action="<?php echo $_SERVER['PHP_SELF'];?>">
>                 <!-- 利用$_SERVER获取当前脚本地址  -->
>                 <input type="text" name="user">
>                 <input type="submit" value="处理数据">
>         </form>
>         <?php
>             if($_POST){
>                 $userName = $_POST['user'];
>                 echo $userName;
>             }
>          ?>
>     </body> </html>

php中的数据类型:

共有八中数据类型:

1.boolean(布尔型);
2. integer(整型);
3.float(浮点型);
4.string(字符串)
5.array(数组)
6.object(对象)
7. resource(资源)
8.NULL(null)

  • 数组/对象

1.数组是啥?

用来储存多个数据的数据类型;

2.创建数组:

$arr = array(1,2,3,4,5);

使用数组:

$arr[0] //1
$arr[1]//2
$arr[2]//3
$arr[3]//4
$arr[4]//5

手动数组赋值:

$arr[0] = 11;

数组相关方法:

获取数组长度:count()函数;

count($arr);//返回数组长度;

这样我们就可以写for循环了,数组中的内容我们就可以遍历出来了;

for($x = 0 ; x < c o u n t ( x < count( x<count(arr) ; $x++){

 echo $arr[$x];

}

php关联数组:(用=>链接起来)

$testArray = array('name' => "zhangsan",'age' => 17 );

echo $testArray['name'].'\'s age is '.$testArray['age'];

返回json

json_encode()方法进行json格式的转码;
json_decode()方法对json进行解析

RDBMS:关系型数据库(MongoDB 非关系型数据库)
DB2
Oracle
SQLServer–MSSQL
MySQL

SQL:结构化查询语言
DDL:数据定义语言
DCL:数据控制语言
DML:数据操纵语言,INSERT(添加)、UPDATE(修改)、DELETE(删除)
DQL :数据查询语言,SELECT(查询)
CRUD - 数据:添加( Create)、查询( Retrieve)、修改( Update)、删除( Delete)

概念
数据库:存储数据的仓库
表:仓库里面的房间
列(字段):房间里的箱子
行(记录):箱子里的数据
主键:唯一标识记录

使用MySQL:
a. 安装
b. 启动MySQL数据库服务
c. 使用mysql-front管理MySQL数据库

    1.  建立连接
    2. 创建数据库
    3. 在数据库中创建表            数据类型:
            字符串:char  varchar  text
            日期时间:date、time、datetime、timestamp
    4. CRUD
        插入:
            INSERT INTO 表名(列名) VALUES (列值)
        修改:
            UPDATE 表名
            SET 列名=新列值, 列名=新列值
            WHERE 条件
            注意,不给修改的条件(WHERE子句)则会修改整张表的数据,这种修改是不可撤销的修改
        删除:
            DELETE FROM 表名
            WHERE 条件
            注意,不给删除的条件(WHERE子句)则会删除整张表的数据,这种删除是不可撤销
        查询:
            SELECT 列名
            FROM 表名
            WHERE 条件
            ORDER BY 排序列 ASC|DESC
            LIMIT 起始索引, 限定行数

            ASC-升序
            DESC-降序

            SELECT id, name, birthday
            FROM students
            ORDER BY id ASC
            LIMIT 3, 3

            模糊查询:
                LIKE
                SELECT id, name, birthday
                FROM students
                WHERE name LIKE '李%'

PHP连接数据库操作:
a. 建立连接
mysql_connect(servername,username,password);
– servername 服务器名
– username 登录数据库的用户名
– password 密码
b. 选择数据库
mysql_select_db(dbname)
c. 设置编码
d. 编写SQL语句
e. 执行SQL语句

$result = mysql_query($sql);

– 对 INSERT、UPDATE、DELETE 的SQL语句,返回的是布尔值:true表示SQL语句执行成功,false表示SQL语句执行失败
– 对 SELECT ,返回的是查询的结果集(虚拟的表格)
f. 处理执行结果
– 对于查询结果集,可以使用 mysql_fetch_assoc($result) 来读取查询结果集中的一行,放置到数组中保存
g. 关闭连接
mysql_close();

常用SQL语句

-- 查询所有数据
select * from users;
-- 查询name字段
select name from users;
-- 查询age小于20的数据
select * from users where age < 20;
-- 查询age小于20并且pwd为123的数据
select * from users where age < 20 and pwd='123';
-- 查询age小于20或者pwd为789的数据
select * from users where age < 20 or pwd='789';
-- 查询name包含a的数据
select * from users where name like '%a%';
-- 查询结果按age升序排列
select * from users order by age;
-- 查询结果按age降序排列
select * from users order by age desc;
-- 查询前两条
select * from users limit 2;
-- 跳过一条,查询两条(23)
select * from users limit 1,2;

-- 插入一条数据
insert into users (name,pwd,age) values ('xiaoming','999',30);

-- 更新数据
update users set age=16 where id=4;

-- 删除数据
delete from users where id=3


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值