PHP&MYSQL复习提纲1
一、 PHP语法
◆ 数据类型
PHP 只有整数、浮点数(或称实数、双精度数)和字符串三种基本数据类型。字符串可用单引号和双引号,但有不同的含义:只有双引号内可以使用变量。
◆ 变量
变量的前面要加"$",使用变量不需要事先说明(或定义)变量的类型,不同类型的数据可对同一变量赋值。但若要使用全局变量须用 global 说明(或将其加入 $GLOBALS[] 数组)。使用静态变量要用 static 说明。
◆ 数组
使用数组并不需要说明它的类型和尺寸,可直接使用。同一数组的各元素可以有不同的数据类型。
◇ 标量数组
用以下的赋值语句可产生一个标量数组:
$a[0]=100;
$a[1]="Hello";
$a[2]=23.4;
如果省略下标,会自动按顺序排列下标值。
◇ 关联数组
用以下的赋值语句可产生一个关联数组:
$students[name]= '张三';
$students[age]= 20;
$students[tel]= '65032905-8097';
在访问数据库时,一条记录可作为一个关联数组,字段名位于方括号内。
◆ 运算符
大体上保留了 C 语言的运算符。增加了字符串连接符"."(访问对象成员时使用"->")。增加了"=>"运算符,用于给数组赋初值。另外,逻辑与("&&")和逻辑或("||")也可用"and"和"or",增加了逻辑异或"xor"。
◆ 基本语句
要求掌握 if-else 语句、 switch-case 语句、 for 语句、 while 语句、 do-while 语句、 continue 语句、 break 语句。 require 语句和 include 语句,用于插入一个磁盘文件。区别是:如果用在条件语句中,include 只在符合条件时才插入文件,而 require 总是插入。格式为:
include("文件名");
require("文件名");
◆ 函数的定义和使用
使用 function 定义函数,不需要说明函数类型和参数类型。
function 函数名(参数1,参数2,……)
{ 语句1;
语句2;……
}
允许在参数前加"&",使参数可以双向传递数据。也允许给参数赋默认值。
二、 MYSQL语法
数值类型
列类型 |
需要的存储量 |
TINYINT |
1 字节 |
SMALLINT |
2 个字节 |
MEDIUMINT |
3 个字节 |
INT |
4 个字节 |
INTEGER |
4 个字节 |
BIGINT |
8 个字节 |
FLOAT(X) |
4 如果 X < = 24 或 8 如果 25 < = X < = 53 |
FLOAT |
4 个字节 |
DOUBLE |
8 个字节 |
DOUBLE PRECISION |
8 个字节 |
REAL |
8 个字节 |
DECIMAL(M,D) |
M字节(D+2 , 如果M < D) |
NUMERIC(M,D) |
M字节(D+2 , 如果M < D) |
列类型 |
需要的存储量 |
DATE |
3 个字节 |
DATETIME |
8 个字节 |
TIMESTAMP |
4 个字节 |
TIME |
3 个字节 |
YEAR |
1 字节 |
列类型 |
需要的存储量 |
CHAR(M) |
M字节,1 <= M <= 255 |
VARCHAR(M) |
L+1 字节, 在此L <= M和1 <= M <= 255 |
TINYBLOB, TINYTEXT |
L+1 字节, 在此L< 2 ^ 8 |
BLOB, TEXT |
L+2 字节, 在此L< 2 ^ 16 |
MEDIUMBLOB, MEDIUMTEXT |
L+3 字节, 在此L< 2 ^ 24 |
LONGBLOB, LONGTEXT |
L+4 字节, 在此L< 2 ^ 32 |
ENUM('value1','value2',...) |
1 或 2 个字节, 取决于枚举值的数目(最大值65535) |
SET('value1','value2',...) |
1,2,3,4或8个字节, 取决于集合成员的数量(最多64个成员) |
1.建立新数据库
CREATE DATABASE 数据库名称
2.显示数据库
SHOW DATABASES
3.打开数据库
USE 数据库名称
4.显示数据库中的表
SHOW TABLES
5.显示表结构
DESCRIBE 表名称 或 SHOW COLUMNS FROM 表名称
6.建立表
CREATE TABLE 表名称(域名称 数据类型(数据大小) [NOT NULL][PRIMARY KEY[AUTO_INCREMENT]],......)
7.修改表
A.新增域
格式:ALTER TABLE 表名称 ADD COLUMN 域名称 数据类型(数据大小) NOT NULL...
B.修改域
格式:ALTER TABLE 表名称 CHANGE COLUMN 域名称 域定义
C.删除域
格式:ALTER TABLE 表名称 DROP COLUMN 域名称
8.删除表
格式:DROP TABLE 表名称
9.选择查询
格式:SELECT 域名称[AS 域别名]...FROM 表名称[WHERE 条件][GROUP BY ...][HAVING ...][ORDER BY ...]
10.新增单笔记录
insert into 表名称(域1,域2,...) values(值1,值2,...)
11.新增多笔记录
insert into 表名称(域1,域2,...) select 域 from 表 where 条件;
12.更新记录
update 表名称 set 域名称=新值 where 条件
13.删除记录
delete from 表名称 where 条件
三、 实例
1. IF…ELSE 程序
<html>
<head>
<title>if_else.php</title>
</head>
<body>
<form action="4.php" method="post">
请输入您的性别:<br>
男<input type="radio" name="gender" value="man">
女<input type="radio" name="gender" value="woman">
<input type="submit" value="确定">
</form>
<?
if ($gender=="woman")
echo "<h2>小姐好</h2>";
else
echo "<>先生好<h2>";
?>
</body>
</html>
2. IF…ELSEIF…ELSE程序
<html>
<head><title>简单计算器</title></head>
<body>
<form action=" <? echo $PHP_SELF ?>" method="post">
操作数1:<input type=text name=num1><br>
操作数2:<input type=text name=num2><br>
<p>
你希望进行何种操作呢?<br>
<input type=radio name=operation value="加" checked>加<br>
<input type=radio name=operation value="减">减<br>
<input type=radio name=operation value="乘">乘<br>
<input type=radio name=operation value="除">除<br>
<input type=submit><input type=reset>
</form>
结果: <? echo $num1;?> <?echo $operation;?> <? echo $num2;?>
等于<br>
<h1>
<?php
if ($operation == "加")
{$x = $num1 + $num2;
print $x;}
elseif ($operation == "减")
{$x = $num1 - $num2;
print $x;}
elseif ($operation == "乘")
{$x = $num1 * $num2;
print $x;}
elseif ($operation =="除")
{$x=$num1/$num2;
print $x;}
else
print $x;
?>
</h1>
</body>
</html>
3. for循环程序
<html>
<head>
<title>计算1+2+…+100的值 </title>
</head>
<body>
<?
$sum=0;
for ($i=1; $i<=100; $i++) //进入循环
{
$sum+=$i; //执行一次就把$sum加上$i
}
echo $sum; //显示结果
?>
</body>
</html>
4. while程序
<html>
<head>
<title>while.php</title>
</head>
<body>
<?
$sum=0;
while ($i<=100)
{
$sum+=$i;
$i++;
};
echo $sum;
?>
</body>
</html>
5. do … while程序
<html>
<head>
<title>do_while.php</title>
</head>
<body>
<form action="2.php" method="post">
求和的上限是?<br>
<input type="text" name="up">
<input type="submit" value="确定">
</form>
<?
$sum=0; $i=1;
do {
$sum+=$i;
$i++;
}
while ($i<=$up);
echo "从1开始加到".($i-1);
echo "<br>";
echo "总和是".$sum;
?>
</body>
</html>
6. 函数例程
<?
function cal ($cal_nu)
{
$cal_sqr=$cal_nu*$cal_nu;
$cal_cub=$cal_nu*$cal_nu*$cal_nu;
return array($cal_sqr, $cal_cub);
}
?>
<html>
<head>
<title>计算平方和立方</title>
</head>
<body>
<form>
<form action="2.php" method="post">
请输入一个数字<br>
<input type="text" name="nu_input">
<input type="submit" value="确定">
</form>
<?
list($sqr, $cub) = cal($nu_input);
echo $nu_input; echo "的平方是:"; echo $sqr;
echo "<br>";
echo $nu_input; echo "的立方是:"; echo $cub;
?>
</body>
</html>
7. 建立数据表
<?
mysql_connect("localhost","s990402","zq");
mysql_select_db("s990402");
$str="CREATE TABLE students(
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
name CHAR(10),
age INT,
tel VARCHAR(20),
addr VARCHAR(30)
)”;
$result=mysql_query($str);
if($result)
echo "数据表\"students\"建立成功!";
else
echo "数据表建立失败!";
?>
8. 添加记录
<?
$cn=mysql_connect("localhost","s990402","zq");
mysql_select_db("s990402",$cn);
$ins=mysql_query("INSERT INTO students(nam,age,tel,addr)
VALUES('$nam',$age,'$tel','$addr')",$cn);
if($ins)
echo "新纪录已添加到数据库中。";
else
echo "纪录添加失败。";
?>
9. 浏览记录
<table border=1 width=500 bgcolor=white>
<tr align=center bgcolor=ffe0f0>
<td>姓名</td><td>年龄</td><td>电话</td><td>住址</td>
</tr>
<?
mysql_connect("localhost","s990402","zq");
mysql_select_db("s990402");
$q=mysql_query("SELECT * FROM students ORDER BY age DESC");
while($a=mysql_fetch_array($q))
print "<tr><td>$a[name]</td><td>$a[age]</td>
<td>$a[tel]</td><td>$a[addr]</td></tr>"
?>
</table>
10. 删除记录(本程序文件名为del.php)
<?
$cn=mysql_connect("localhost","s990402","zq");
mysql_select_db("s990402",$cn);
if($id>0) mysql_query("DELETE FROM students WHERE id=$id",$cn);
?>
<table border=1 width=500 bgcolor=white>
<tr align=center bgcolor=f0ffe0>
<td> </td><td>姓名</td><td>年龄</td><td>电话</td><td>住址</td>
</tr>
<?
$q=mysql_query("SELECT * FROM students ORDER BY age DESC",$cn);
while($a=mysql_fetch_array($q))
print "<tr><td><a href='del.php?id=$a[id]'>删除</a></td>
<td>$a[nam]</td><td>$a[age]</td>
<td>$a[tel]</td><td>$a[addr]</td></tr>"
?>
</table>