php和mysql入门
文章目录
- 服务器[了解]
- 服务器软件
- HTTP服务器(web服务器)
- 服务器与客户端的关系
- 搭建HTTP服务器
- phpStudy介绍
- phpStudy的安装
- phpStudy的错误解决
- 提示缺少vc9 库文件
- 本地hosts
- PHP基础
- **PHP简介**
- PHP文件位置
- php初体验
- 变量
- 数据类型
- 数组
- 输出语句
- 语句
- 判断语句
- 循环语句
- 函数
- json的处理
- Mysql数据库技术
- 数据库的组织架构:
- 关系型数据库—MySQL
- SQL-操作数据库的语言
- 数据库操作方式
- 数据库表的操作
- 数据库的增删改查
- 查看数据库
- 选择数据库
- 创建数据库
- 删除数据库
- 数据表的操作
- 表创建以及字段
- 字段类型
- 子段约束
- 索引
- 创建数据表
- sql语句创建
- 图形界面创建
- SQL
- 增删改查
- 插入数据
- 修改数据update
- 查询数据select
- PHP操作数据库
- **连接数据库基本步骤**
- **操作数据库常用API**
- sql操作注意事项:
- 非查询(增删改)和查询语句(select)的区别
服务器[了解]
<前言:通俗的讲,能够提供某种服务的机器(计算机)称为服务器
服务器软件
使计算机具备提供某种服务能力的应用软件,称为服务器软件,
通过安装相应的服务软件,然后进行配置后就可以使计算具备了提供某种服务的能力。
常见服务器分类: 文件服务器、数据库服务器、邮件服务器、Web服务器等
;
其中与我们息息相关的是 web服务器, 想让计算机成为 web 服务器, 就要安装服务器软件, 提供 web 服务
示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。
常见的提供web服务的服务器软件
- (1) IIS windows web 服务器软件
- (2) apache web 服务器软件 ( 开源免费的 )
- (3) Tomact
- (4) Nginx(重点)
HTTP服务器(web服务器)
即( web服务器 )网站服务器**,主要提供文档(文本、图片、视频、音频)web浏览服务,一般安装Apache、Nginx服务器软件。
服务器与客户端的关系
搭建HTTP服务器
phpStudy介绍
phpStudy是一个PHP调试环境的程序集成包。
该程序包集成最新的Apache+PHP+MySQL,安装非常的简单
phpStudy的安装
安装phpStudy,解压双击安装(非中文路径),其它默认安装。
推荐就安装在默认的目录下,一定不能有中文,否则肯定启动不起来。
phpStudy的错误解决
如果phpStudy启动发生错误,参数下列几点。
一是防火墙拦截,
二是80端口已经被别的程序占用,如IIS,迅雷等;
三是没有安装VC9运行库,php和apache都是VC9编译。
解决以上三个问题,99%能一次性安装成功
为了减少出错安装路径不得有汉字,如有防火墙开启,会提示是否信任httpd、mysqld运行,请选择全部允许。
提示缺少vc9 库文件
在提供的资料库中找到phpStudy运行库, 根据自己电脑操作系统的位数安装对应的vc9运行库即可。
初次安装之后的访问
在浏览器中输出入localhost 是本地的意思,相当于 127.0.0.1
本地hosts
Hosts是一个没有扩展名的系统文件,可以用记事本等工具打开,其作用就是将一些常用的网址域名与其对应的IP地址建立一个关联“数据库”,当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从Hosts文件中寻找对应的IP地址,一旦找到,系统会立即打开对应网页,如果没有找到,则系统会再将网址提交DNS域名解析服务器进行IP地址的解析。
hosts文件的地址:C:\Windows\System32\drivers\etc
PHP基础
PHP简介
开源(open source)软件,跨平台,常用操作系统稳定执行。Windows / Linux。做WEB开发的经典组合 WAMP,LAMP,LNMP基本都是开源软件。
入门简单,用户只需要关注应用,开发成本低。
支持的大多数主流数据库。MySQL,oracle,Redis等
文件以.php后缀结尾,所有程序包含在
<?php 这里是代码 ?>
避免使用中文目录和中文文件名php页面无法直接打开需要运行在服务器环境当中
PHP文件位置
D:\phpStudy\PHPTutorial\WWW,只要写在这里才能被解析
php初体验
<?phpecho "hello world";
?>
输入中文乱码问题:如果使用echo输出中文,会乱码。
在php的语法中,末尾必须加分号,不然就报错了(最后一行可以不加分号)
<?php//content-Type:text/html;返回内容是一个HTML文档文本//charset=utf-8 设置编码集header("content-Type:text/html;charset=utf-8");echo "hello world";echo "<br/>";echo "你是哪里人?";
?>
变量
php是一门弱类型语法,变量的类型可以随意改变。
变量其实就是存储数据的容器
变量的命名规则
//1. 不需要关键字进行声明,变量在第一次赋值的时候被创建。
//2. 必须以$符号开始
//3. $后面的命名规则与js的变量命名规则一致。
$name = “峰峰”;
echo $name;
数据类型
字符串
$str = "峰峰";
echo $str;
整数
$num = 100;
echo $num;
浮点型
$float = 11.11;
echo $float;
布尔类型
$flag = true;
//当布尔类型值为true时,输出1
echo $flag;
$flag = false;
//当布尔类型为false时,输出空字符串
echo $flag;
字符串连接符
//1. 在php中,+号只有算数的功能,并不能拼串
//2. 在php中,拼串使用.
$name = "峰峰";
echo "大家好,我是" . $name . ",今年18岁";
php中的单引号与双引号
//1. 字符串的定义可以使用单引号,也可以使用双引号
$name = "峰峰";
$desc = '很帅';
//2. 双引号可以解析变量
//3. 单引号的性能会高于双引号(了解)$str = '$name 很帅';//$name 很帅
echo $str;$str = "$name 很帅";//峰峰 很帅
echo $str;
数组
在php中,数组分为两种,索引数组和关联数组
计算数组长度的方法: count(数组名);
索引数组(类似与JS中的数组)
$arr = array("张飞","赵云","马超");
echo $arr;//echo只能打印基本数据类型
echo $arr[0];//张飞
关联数组(类似与JS中的对象)
//属性名必须用引号引起来
$arr = array("name"=>"zhangsan", "age"=>18);
echo $arr["name"];
输出语句
//1. echo 输出简单数据类型
//2. print_r 输出数据结构,一般用于输出复杂类型。
print_r($arr);//print_r是一个函数,不要忘记小括号
//3. var_dump 输出完整的数据结构,包括类型,一般用于精准调试
var_dump($arr);
二维数组
数组中的每个元素又是一个数组
二维数组的存取元素,需要两次访问,依次确定行和列$arr[x][y]
;
//索引数组$arr=[[1,2,3],[4,5,6],[7,8,9]]; //取值echo $arr[2][2];//存储一个人信息$info=["name"=>"zs","age"=>100];//存储一个班信息$infos=[["name"=>"zs","age"=>100],["name"=>"ls","age"=>100],["name"=>"ww","age"=>100]];//取值echo $infos[1]["name"];
语句
判断语句
基本上来说,所有语言的if…else语法都是一样
$age = 17;
if ($age >= 18) {echo "终于可以看电影了,嘿嘿嘿";
} else {echo "哎,还是回家学习吧";
}
循环语句
遍历索引数组
$arr = array("张三", "李四", "王五", "赵六", "田七", "王八");
//获取数组的长度: count($arr)
for($i = 0; $i < count($arr); $i++) {echo $arr[$i];echo "<br>";
}
遍历关联数组
$arr = array("name"=>"zs","age"=>18,"sex"=>20
);
foreach($arr as $key => $value) {echo $key . "=" . $value . "<br>";
}
函数
<?phpheader("content-Type:text/html;charset=utf-8");//php中函数的语法与js中函数的语法基本一样,不同点在于//1. 函数名大小写不敏感//2. 函数的参数可以设置默认值function sayHello ($name="周杰伦") {echo "大家好,我是$name";echo "<br>";}sayHello();//不传参数,会使用默认值sayHello("峰峰");//传参数,默认值不生效
?>
json的处理
json_encode();把数组转化为json对象
json_decode();把json转化为数组
注意:php中一般是将关联数组进行转化,前端才能收到进行处理
Mysql数据库技术
数据库基本概念[了解]
专门用来存储、管理数据的仓库(空间),按照数据结构来组织、存储和管理,可以实现高效存取数据。英文:Database, DB。
关系型数据库[了解]
当前使用范围最广的数据库。基于表, 按照关系模型(数据之间表与表存在联系)组织的数据库。
订单:订单编号,商品名称,价格,数量,配送地址
订单编号 | 商品名称 | 价格 | 数量 | 配送地址 |
---|---|---|---|---|
100123 | 华为mate10 | 4999 | 2 | 北京市京顺路99号 |
100124 | 花裙子 | 499 | 1 | 北京市清华大学1号楼 |
用户信息表
保存:用户名,手机号,用户id,身份证号
商品信息表
商品名称 价格 品牌 属性
订单表
用户id 商品id 地址id
- 关系型数据库: 基于表, 表与表之间可以存在关系进行多表查询的存储方式, 适合较为复杂的存储 mysql, SQL Server, oracle.
- 非关系型 数据库: 基于键值对的存储方式, 数据之间没有耦合性, 特点执行效率高 mongodb redis(内存型数据库)
数据库的组织架构:
数据库
数据表(table)
表是以行和列的形式组织起来的数据的集合。项目一般需要不同的数据表,将数据分布存储在不同的数据表中。
数据库的数据存放在数据表中
如:订单表,用户表,商品表,配送地址表
记录-行(row,record)
我们把表中的每一行叫做一条“记录”
懒男鞋垫螺蛳粉 99 10 是
没有饼的老婆饼 400 20 否
字段-列 (column,field)
字段是比记录更小的单位,多个字段集合组成记录, 即数据项
关系型数据库—MySQL
数据库官网地址:https://dev.mysql.com
英文手册地址:https://dev.mysql.com/doc/refman/5.5/en/
中文参考论坛:http://www.mysqlpub.com/
SQL-操作数据库的语言
SQL:structured Query Language 结构化查询语言。
SQL语句,相当于客户端发送的命令(与数据库服务器进行交互), 我们后面就是要学习 SQL 语句操作数据库
- 主要是执行 数据操作的基本逻辑有:增删改查 操作
- 能够操作mysql sqlserver oricale
数据库操作方式
命令行演示(了解)
cmd中mysq的登录
mysql -uroot -p 密码
图形界面客户端
数据库连接成功
数据库表的操作
数据库的增删改查
查看数据库
show databases;
选择数据库
use database;
创建数据库
create database [if not exists]`数据库名` charset=字符编码
删除数据库
drop database [if exists] 数据库名
数据表的操作
基本实例
表创建以及字段
create table [if not exists] 表名(字段名 数据类型 [null|not null][auto_increment] [primary key][comment],字段名 数据类型 [default]…
)engine=存储引擎 default charset=utf8;
字段类型
整型 int
存储如年龄,产品数量,订单编号等。
小数类型
float ,decimal eg. 重量,工资,奖金,价格等
使用decimal类型,实现小数的精确存储,一般用来存储与钱有关的数字。3.333333331
字符串型
varchar(M) M为该字段可以存储的最多字符数,如varchar(10)。
varchar一般用来存储长度变化比较大的字符串,如文章标题,商品名称,
char(M) 存储长度比较固定的字符串,如手机号,身份证号,序列号,邮编。
此外可以使用text类型,存储较长的字符串,无需指定字符串的具体长度。 char(10)
日期时间型
datetime,date(年月日),time(时分秒)。年月日时分秒。
子段约束
字段约束: 字段数据的属性规则(特征)
not null 不为空
可以限制字段值不能为空
default 默认值,
可以设置字段的默认值,在没有录入时自动使用默认值填充。
primary key 主键 :唯一标识,不能重复,不能为空
设置字段为主键,主键字段的值不能重复,不能为空。而且一个数据表中只能设置一个字段为主键,作为每行记录的唯一身份信息(索引)。stu_id int primary key
索引
- primary key auto_increment 自动增长
设置字段为自动增长,默认从1开始自动分配编号。自增长字段必须为一个key(索引,数据结构,便于快速查找数据,相当于书的目录),一般与primary key结合使用。
类型必须为整型。
2 unique key 不能重复
唯一键,设置字段的值为唯一的,可以设置多个字段为唯一键。唯一键字段的值可以为空。
学号设置为主键,要求唯一的,不能为空的,用来标识学生信息,
创建数据表
sql语句创建
mysql> create table if not exists teacher(-> id int auto_increment primary key comment '主键',-> name varchar(20) not null comment '姓名',-> phone varchar(20) comment '电话号码',-> addr varchar(100) default '地址不详' comment '地址'-> )engine=innodb;
图形界面创建
注意 创建表时,每个表必须有一个主键
新建表
保存表结构:
运行sql语句的方法
SQL
SQL编写注意点: 注释用 – , 语句结束加分号(
php和mysql入门相关推荐
- MySQL入门系列:查询简介(四)之类型转换和分组查询
前文回顾 之前我们介绍了一些简单查询的方式以及MySQL中表达式和函数的简单使用,本篇文章继续介绍如何使用MySQL进行查询. 类型转换 类型转换的场景 只要某个值的类型与上下文要求的类型不符,MyS ...
- MySQL入门系列:存储程序(二)之存储函数简介
存储例程 存储例程是存储程序的一种类型,本质上也是封装了一些可执行的语句,只不过它的调用方式是:需要手动去调用!存储例程又可以分为存储函数和存储过程,下边我们详细唠叨这两个家伙. 存储函数 创建存储函 ...
- mysql怎么滤空_《MySQL 入门教程》第 08 篇 过滤条件
文章来源:<MySQL 入门教程>第 08 篇 过滤条件 原文作者:不剪发的Tony老师 来源平台:CSDN 上一篇我们学习了如何使用 SELECT 和 FROM 查询表中的数据.很多时候 ...
- 32位mysql安装包_《MySQL 入门教程》第 02 篇 MySQL 安装
文章来源:<MySQL 入门教程>第 02 篇 MySQL 安装 原文作者:不剪发的Tony老师 来源平台:CSDN 上一篇我们了解了什么是MySQL数据库. 本文介绍如何在 Window ...
- MySql入门笔记二~悲催的用户
这些是当年小弟的MySql学习笔记,木有多么复杂的结构操作,木有多炫丽的语句开发,木有...总之就是木有什么技术含量... 日复一日,彪悍的人生伴随着彪悍的健忘,运维操作为王,好记性不如烂笔头,山水有 ...
- c语言连接mysql(入门)_MySQL入门之C语言操作MySQL
基本概念 C APIs包含在mysqlclient库文件当中,与MySQL的源代码一块发行,用于连接到数据库和执行数据库查询.#include #include #include #include # ...
- MYSQL 入门全套
转载自 MYSQL 入门全套 MySQL简介 1.什么是数据库 ? 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库,它产生于距今六十多年前,随着信息技术和市场的发展,特别是二十 ...
- Mysql学习总结(12)——21分钟Mysql入门教程
21分钟 MySQL 入门教程 目录 一.MySQL的相关概念介绍 二.Windows下MySQL的配置 配置步骤 MySQL服务的启动.停止与卸载 三.MySQL脚本的基本组成 四.MySQL中的数 ...
- MySQL入门之大纲
本节是讲解MySQL的入门教程,此教程是去年2016年做的,在此整理好,发布到了CSDN上: 此教程简单为MySQL入门教程.下面是涉及的内容: MySQL入门之数据库介绍及MySQL介绍 http: ...
- mysql技术内幕sampdb_MySql技术内幕之MySQL入门(1)
MySql技术内幕之MySQL入门(1) 安装 检查系统中是否已经安装了MySQL sudo netstat -tap | grep mysql 若没有显示已安装结果,则没有安装.否则表示已经安装. ...
最新文章
- ARM裸机篇---启动代码分析
- 【转】pDc-SelectObject(pOldBrush)恢复画刷
- 远程断开远程桌面会话之方法
- [VsCode] 开发所使用的VsCode的插件
- Python——安装Scrapy时出现各种错误
- 绿联扩展坞拆解_拆解报告:UGREEN绿联3A1C四口多功能扩展坞(带SD卡槽版)
- .net core精彩实例分享 -- 文件与I/O
- ruby学习--block
- C#通过LPT控制打印机——txt文档读取指令打印条码
- PDF文件格式的特点
- 2022年度总结|我的CSDN成长历程
- Tkinter模块GUI界面化编程实战(七)——人机对战五子棋(含超详解及完整源码、完整程序免费下载链接)
- 美的空气净化器H32评测:美观、实用以及更多
- speedoffice如何在Word文档中输入美元符号
- mc是用java写的吗_都说MC的代码特别差劲,你觉得它在所有游戏中,能排第几?...
- Android中EditText隐藏/自动弹出输入法的问题
- 求解二分图的独立集问题
- 微积分 重点难点记录
- Kubernetes HPA测试
- 英语语法汇总(2.冠词)
热门文章
- C语言常见复试面试问题
- 【Copula】考虑风光联合出力和相关性的Copula场景生成(Matlab代码实现)
- K-Means聚类算法(matlab)
- Qt的内存释放策略(内存自动释放机制)
- 走路步数怎么在屏幕上显示_华为手机走路不增加步数 走路步数怎么在屏幕上显示...
- 从零开始的C++ opencv的人脸识别程序——第一个C++程序
- BZOJ3165: [Heoi2013]Segment
- 立大仁义,必有大伪诈,立大慈悲,必有大魔
- 四级单词pdf_2018年12月大学英语四级真题及答案解析(完整三套可打印)
- 由VB6.0的load窗体事件——看顺便学习法