PHP SQL学习

PHP

PHP 是一种被广泛使用的开源脚本语言

PHP语法

PHP 脚本在服务器上执行,然后向浏览器发送回纯 HTML 结果。

基础语法

  • PHP 脚本可放置于文档中的任何位置。

  • PHP 脚本以 <?php 开头,以 ?> 结尾:

<?php
// 此处是 PHP 代码
?>
  • PHP 文件的默认文件扩展名是 ".php"。

  • PHP 文件通常包含 HTML 标签以及一些 PHP 脚本代码。

  • 注:PHP 语句以分号结尾(;)。PHP 代码块的关闭标签也会自动表明分号(因此在 PHP 代码块的最后一行不必使用分号)。

  • 注释:单行注释://或#,多行注释:/* */

PHP 大小写敏感

在 PHP 中,所有用户定义的函数、类和关键词(例如 if、else、echo 等等)都对大小写不敏感,但所有变量都对大小写敏感

PHP变量

PHP 变量规则:

  • 变量以 $ 符号开头,其后是变量的名称

  • 变量名称必须以字母或下划线开头

  • 变量名称不能以数字开头

  • 变量名称只能包含字母数字字符和下划线(A-z、0-9 以及 _)

  • 变量名称对大小写敏感($y 与 $Y 是两个不同的变量)

注释:PHP 变量名称对大小写敏感!

  • 变量会在首次为其赋值时被创建

PHP 变量作用域

PHP 有三种不同的变量作用域:

  • local(局部):函数内部声明的变量拥有 LOCAL 作用域,只能在函数内部进行访问。

  • global(全局):函数之外声明的变量拥有 Global 作用域,只能在函数以外进行访问。

  • static(静态)

注:可在不同函数中创建名称相同的局部变量

global:用于在函数内访问全局变量。

语法:在(函数内部)变量前面使用 global 关键词

static:

不删除局部变量,每当函数被调用时,这个变量所存储的信息都是函数最后一次被调用时所包含的信息。

注:该变量仍然是函数的局部变量。

输出:echo/print

echo 和 print 之间的差异:

  • echo ——能够输出一个以上的字符串

  • print ——只能输出一个字符串,并始终返回 1

  • echo 比 print 稍快,因为它不返回任何值。

echo:

有无()都能用

输出字符串:字符串后加<br> 输出变量:下一行写echo "<br>";

print:

有无()都可用

  • echo与print:字符串中能包含 HTML 标记

数据类型

字符串:

单引号或双引号内任何文本

整数:

整数规则:

  • 整数必须有至少一个数字(0-9)

  • 整数不能包含逗号或空格

  • 整数不能有小数点

  • 整数正负均可

  • 可以用三种格式规定整数:十进制、十六进制(前缀是 0x)或八进制(前缀是 0)

浮点数:

有小数点或指数形式

逻辑:

true或false

数组

形如:

$cars=array("Volvo","BMW","SAAB");
​
print "My car is a {$cars[0]}";

对象

对象是存储数据和有关如何处理数据的信息的数据类型。

在 PHP 中,必须明确地声明对象。

首先我们使用class关键词声明对象的类。(类是包含属性和方法的结构)

然后我们在对象类中定义数据类型,然后在该类的实例中使用此数据类型

NULL值

特殊的 NULL 值表示变量无值。NULL 是数据类型 NULL 唯一可能的值。

NULL 值标示变量是否为空,也用于区分空字符串与空值数据库。

可以通过把值设置为 NULL,将变量清空

字符串函数

strlen():

返回字符串的长度

str_word_count():

对字符串中单词进行计数

strrev():

反转字符串

strpos():

用于检索字符串内指定的字符或文本。如果找到匹配,则会返回首个匹配的字符位置。(首字符位置为0)如果未找到匹配,则将返回 FALSE

str_replace():

替换字符串中文本

例如:用 "Kitty" 替换文本 "world":echo str_replace("world", "Kitty", "Hello world!");

常量

PHP 常量

常量是单个值的标识符(名称)。

常量类似变量,但是常量一旦被定义就无法更改或撤销定义。

有效的常量名以字符或下划线开头(常量名称前面没有 $ 符号)。

注释:与变量不同,常量贯穿整个脚本是自动全局的。

设置 PHP 常量

使用 define() 函数 —— 它使用三个参数:

  1. 首个参数定义常量的名称

  2. 第二个参数定义常量的值

  3. 可选的第三个参数规定常量名是否对大小写不敏感。默认是 false。

例如:对大小写不敏感:define("GREETING", "Welcome to W3School.com.cn!", true);

常量是全局的

常量是自动全局的,而且可以贯穿整个脚本使用。

运算符

算术运算符

+、-、*、/、%

赋值运算符

=、+=、-=、*=、/=、%=

字符串运算符

.:串接

.=:串接赋值

递增/递减运算符

前递增/减:++$x、--$x 后递增/减:$x--、$x++

比较运算符

运算符名称例子结果
==等于$x == $y如果 $x 等于 $y,则返回 true。
===全等(完全相同)$x === $y如果 $x 等于 $y,且它们类型相同,则返回 true。
!=不等于$x != $y如果 $x 不等于 $y,则返回 true。
<>不等于$x <> $y如果 $x 不等于 $y,则返回 true。
!==不全等(完全不同)$x !== $y如果 $x 不等于 $y,它们类型不相同,则返回 true。
>大于$x > $y如果 $x 大于 $y,则返回 true。
<小于$x < $y如果 $x 小于 $y,则返回 true。
>=大于或等于$x >= $y如果 $x 大于或者等于 $y,则返回 true.
<=小于或等于$x <= $y如果 $x 小于或者等于 $y,则返回 true。

逻辑运算符

与:and/&& 或:or/|| 异或:xor(x与y有且只有一个为true,则返回true)

非:!

数组运算符

+:联合 ==:相等 ===:全等 !=:不相等 <>:不相等

!==:不全等

if...elseif...else 语句

  • if 语句 —— 如果指定条件为真,则执行代码

  • if...else 语句 —— 如果条件为 true,则执行代码;如果条件为 false,则执行另一端代码

  • if...elseif....else 语句 —— 根据两个以上的条件执行不同的代码块

  • switch 语句 —— 选择多个代码块之一来执行

if (条件) {
  条件为 true 时执行的代码;
} elseif (condition) {
  条件为 true 时执行的代码;
} else {
  条件为 false 时执行的代码;
}

switch

语法

switch (expression)
{
case label1:
  expression = label1 时执行的代码 ;
  break;  
case label2:
  expression = label2 时执行的代码 ;
  break;
default:
  表达式的值不等于 label1 及 label2 时执行的代码;
}

工作原理:

  1. 对表达式(通常是变量)进行一次计算

  2. 把表达式的值与结构中 case 的值进行比较

  3. 如果存在匹配,则执行与 case 关联的代码

  4. 代码执行后,break 语句阻止代码跳入下一个 case 中继续执行

  5. 如果没有 case 为真,则使用 default 语句

循环

  • while —— 只要指定条件为真,则循环代码块

  • do...while —— 先执行一次代码块,然后只要指定条件为真则重复循环(while后加;)

  • for —— 循环代码块指定次数

  • foreach —— 遍历数组中的每个元素并循环代码块

foreach:

只适用于数组,并用于遍历数组中的每个键/值对。

语法

foreach ($array as $value) {
  code to be executed;
}

每进行一次循环迭代,当前数组元素的值就会被赋值给 $value 变量,并且数组指针会逐一地移动,直到到达最后一个数组元素。

函数

在 PHP 创建用户定义函数

用户定义的函数声明以单词 "function" 开头:

语法

function functionName() {
  被执行的代码;
}

注释:函数名能够以字母或下划线开头(而非数字)。

注释:函数名对大小写不敏感。

提示:函数名应该能够反映函数所执行的任务。

  • return:返回值

数组

在 PHP 中创建数组

在 PHP 中, array() 函数用于创建数组:

array();

在 PHP 中,有三种数组类型:

  • 索引数组 —— 带有数字索引的数组(自动或手动分配)(使用for循环)

  • 关联数组 —— 带有指定键的数组

  • 多维数组 —— 包含一个或多个数组的数组

count()函数

返回数组的长度(元素数)

关联数组

关联数组是使用分配给数组的指定键的数组。

有两种创建关联数组的方法:

$age=array("Bill"=>"35","Steve"=>"37","Elon"=>"43");

或者:

$age['Bill']="63";
$age['Steve']="56";
$age['Elon']="47";

使用foreach 循环遍历并输出关联数组的所有值

例如:foreach($age as $x=>$x_value){}

多维数组

多维数组指的是包含一个或多个数组的数组。

PHP 能理解两、三、四或五级甚至更多级的多维数组。不过,超过三级深的数组对于大多数人难于管理。

注释:数组的维度指示您需要选择元素的索引数。

  • 对于二维数组,您需要两个索引来选取元素

  • 对于三维数组,您需要三个索引来选取元素

二维数组

<?php
$cars = array
   (
   array("Volvo",33,20),
   array("BMW",17,15),
   array("Saab",5,2),
   array("Land Rover",15,11)
   );
   
echo $cars[0][0].": 库存:".$cars[0][1].", 已售:".$cars[0][2].".<br>";
echo $cars[1][0].": 库存:".$cars[1][1].", 已售:".$cars[1][2].".<br>";
echo $cars[2][0].": 库存:".$cars[2][1].", 已售:".$cars[2][2].".<br>";
echo $cars[3][0].": 库存:".$cars[3][1].", 已售:".$cars[3][2].".<br>";
?>

可以使用for循环嵌套来获取元素

数组排序

  • sort() - 以升序对数组排序

  • rsort() - 以降序对数组排序

  • asort() - 根据,以升序对关联数组进行排序

  • ksort() - 根据键,以升序对关联数组进行排序

  • arsort() - 根据值,以降序对关联数组进行排序

  • krsort() - 根据键,以降序对关联数组进行排序

全局变量——超全局变量

  • $GLOBALS

  • $_SERVER

  • $_REQUEST

  • $_POST

  • $_GET

  • $_FILES

  • $_ENV

  • $_COOKIE

  • $_SESSION

SQL

什么是 SQL?

  • SQL 指结构化查询语言

  • SQL 使我们有能力访问数据库

  • SQL 是一种 ANSI 的标准计算机语言

在您的网站中使用 SQL

要创建发布数据库中数据的网站,您需要以下要素:

  • RDBMS 数据库程序(比如 MS Access, SQL Server, MySQL)

  • 服务器端脚本语言(比如 PHP 或 ASP)

  • SQL

  • HTML / CSS

语法

语句

例如:SELECT LastName FROM Persons

注:SQL对大小写不敏感

某些数据库系统要求在每条 SQL 命令的末端使用分号。

DML和DDL

可以把 SQL 分为两个部分:数据操作语言 (DML) 和 数据定义语言 (DDL)。

SQL (结构化查询语言)是用于执行查询的语法。但是 SQL 语言也包含用于更新、插入和删除记录的语法。

查询和更新指令构成了 SQL 的 DML 部分:

  • SELECT - 从数据库表中获取数据

  • UPDATE - 更新数据库表中的数据

  • DELETE - 从数据库表中删除数据

  • INSERT INTO - 向数据库表中插入数据

SQL 的数据定义语言 (DDL) 部分使我们有能力创建或删除表格。我们也可以定义索引(键),规定表之间的链接,以及施加表间的约束。

SQL 中最重要的 DDL 语句:

  • CREATE DATABASE - 创建新数据库

  • ALTER DATABASE - 修改数据库

  • CREATE TABLE - 创建新表

  • ALTER TABLE - 变更(改变)数据库表

  • DROP TABLE - 删除表

  • CREATE INDEX - 创建索引(搜索键)

  • DROP INDEX - 删除索引

select语句

SQL SELECT 语句

SELECT 语句用于从表中选取数据。

结果被存储在一个结果表中(称为结果集)。

SQL SELECT 语法

SELECT 列名称 FROM 表名称

以及:

SELECT * FROM 表名称         //选取所有列

注释:SQL 语句对大小写不敏感。SELECT 等效于 select。

获取多列,用,隔开

select distinct语句

关键词 DISTINCT 用于返回唯一不同的值。

语法:

SELECT DISTINCT 列名称 FROM 表名称

where子句

用于规定选择的标准

WHERE 子句

如需有条件地从表中选取数据,可将 WHERE 子句添加到 SELECT 语句。

语法

SELECT 列名称 FROM 表名称 WHERE 列 运算符 值
操作符描述
=等于
<>不等于
>大于
<小于
>=大于等于
<=小于等于
BETWEEN在某个范围内
LIKE搜索某种模式

注释:在某些版本的 SQL 中,操作符 <> 可以写为 !=。

使用 WHERE 子句

如果只希望选取居住在城市 "Beijing" 中的人,我们需要向 SELECT 语句添加 WHERE 子句:

SELECT * FROM Persons WHERE City='Beijing'

引号的使用

SQL 使用单引号来环绕文本值(大部分数据库系统也接受双引号)。如果是数值,请不要使用引号。

文本值:

这是正确的:
SELECT * FROM Persons WHERE FirstName='Bush'
​
这是错误的:
SELECT * FROM Persons WHERE FirstName=Bush

数值:

这是正确的:
SELECT * FROM Persons WHERE Year>1965
​
这是错误的:
SELECT * FROM Persons WHERE Year>'1965'

AND & OR 运算符

AND 和 OR 运算符用于基于一个以上的条件对记录进行过滤。

AND 和 OR 运算符

AND 和 OR 可在 WHERE 子语句中把两个或多个条件结合起来。

如果第一个条件和第二个条件都成立,则 AND 运算符显示一条记录。

如果第一个条件和第二个条件中只要有一个成立,则 OR 运算符显示一条记录。

ORDER BY 子句

ORDER BY 语句用于对结果集进行排序。

ORDER BY 语句

ORDER BY 语句用于根据指定的列对结果集进行排序。

ORDER BY 语句默认按照升序对记录进行排序。

如果您希望按照降序对记录进行排序,可以使用 DESC 关键字。

INSERT INTO 语句

INSERT INTO 语句用于向表格中插入新的行。

语法

INSERT INTO 表名称 VALUES (值1, 值2,....)

我们也可以指定所要插入数据的列:

INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)

UPDATE 语句

Update 语句用于修改表中的数据。

语法:

UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值

DELETE 语句

DELETE 语句

DELETE 语句用于删除表中的行。

语法

DELETE FROM 表名称 WHERE 列名称 = 值
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值