php学习总结

$_GET[string]  的介绍,Isset() 和empty()的介绍,数据库数据类型,

1.$_GET[string]   的介绍

2.$_GET[string]

他和$_POST 的区别在于,当form method=“get”的时候,用来传值,

点击下submit后,URL转到了接受值的php页面。但是URL 不是这个页面的--1.php。而是自动生成的URL。

显示的是下面的URL:php?控件名(myname是文本框的控件名)=用户输入的值。

所以说用这个不安全。

3.Isset() 和empty()的区别

Isset()检查变量值是不是设立了。 Check the variable is set and exists.

Empty()检查变量值是不是空。 Check if the variable has contents.

对于empty(),空有7种可能,Null,0,‘’(空字符串),array(),false,"0",0.0

遇到出现上面的7种情况返回true。

两个返回的都是布尔值。

一般情况下用empty()检查表单中户输入的是否是空值。

用if(!Empty($var))检查;

primary key 主键

4. MYSQL 命令:create table 命令:注意 column name column type中间没有逗号,只是空格。

看下格式

问题:Cookie 的用法

已经试过

5. Setcookie()用于服务端在客户端创建cookie。

里面的两个值是必须的。Name和value。字符串。

我自己弄的cookie。Setcookie(‘username’,‘admin’);

在IE9 中按f12 进入开发者工具中看缓存的cookie信息。

6. Cookie 的默认时间是当你关掉浏览器时就消失。

可以用时间戳time()+秒表示时间。如:time()+(7*24*30*60)表示7天存在。

读取cookie。用$_cookie[]读取。方括号里面是string 的cookie名字。

例子:

7. mysql 数据类型:用于数据库中的table下的数据的创建

8.

注意下:char()和 varchar() 的区别:

Char(2)只能存一个字符。而且一定是2个。

Varchar(60)表示能存60个字符。不一定是60个。 一般用这种。

Date ,日期格式

time,时间格式

datetime表示日期和时间格式。

Dec()表示:DEC(m,n)

M表示总的位数,n表示小数点后的位数。

m is the total number of digits and n is the number of digits after the decimal point. Say, you want to store some numbers like the format 9999.9099999. Here the value of m is 11 and that of n is 7.

DATE - A date in YYYY-MM-DD format, 例如: 1973-12-30.

DATETIME -in YYYY-MM-DD HH:MM:SS  1973-12-30 15:30:00.

TIMESTAMP -  This looks like the previous DATETIME format, only without the hyphens between numbers; 3:30 in the afternoon on December 30th, 1973 would be stored as 19731230153000 ( YYYYMMDDHHMMSS ).

TIME - Stores the time in HH:MM:SS format.

YEAR(M) - If the length is specified as 4, YEAR can be 1901 to 2155. The default length is 4.

问题:If.。。Elseif。。。Else

else ifallows us to keep evaluating using if statements as many times as needed. 可以把elseif看做是另外一个if。

Use the if....elseif...else statement to select one of several blocks of code to be executed.

Syntax

问题: php连接mysql()

回答:四个函数:

mysql_connect(),mysql_select_db(),mysql_query(),mysql_close().

相关语法: mysql_connect(),连接服务器。

resource mysql_connect(string $server,string$username, string$password).

返回值:指定服务器的link identifier。或者未成功就是false。

然后用这个连接mysql中的数据库

bool mysql_select_db( string $database_name [, resource $link_identifier = NULL ] .

Mysql_select_db() 用于连接mysql服务器上的数据库。下面的mysql_query()用来在这个数据库中执行。前面$a=Mysql_select_db()错误。

mysql_query()语法:resource mysql_query( string $query [, resource $link_identifier = NULL ] ) 用于给数据库发送命令。返回resource,是个结果的标示符。

表单中id和name的区别

表单中id是用来表示控件的,name是用来传值的。Name,id可以名字一样。

Php常用命令:可以看下:http://www.w3school.com.cn/php/php_mysql_select.asp

PHP 数据库

·          MySQL 简介

·          MySQL Connect

·          MySQL Create

·          MySQL Insert

·          MySQL Select      SELECT 语句用于从数据库中选取数据

MySQL Where   WHERE 子句

如需选取匹配指定条件的数据,请向 SELECT 语句添加 WHERE 子句。

语法  下面的mysql语法,和php无关。

SELECT column FROM table

WHERE column operator value

·          $result = mysql_query("SELECT * FROM Persons
WHERE FirstName='Peter'");

·          MySQL Order By

·          MySQL Update

·          MySQL Delete

·          PHP ODBC

下面的例子将从 "Persons" 表中选取所有 FirstName='Peter' 的行:

<?php

$con = mysql_connect("localhost","peter","abc123");

mysql_select_db("my_db", $con);

$result = mysql_query("SELECT * FROM Persons

WHERE FirstName='Peter'");

while($row = mysql_fetch_array($result))

  {

  echo $row['FirstName'] . " " . $row['LastName'];

  echo "<br />";

  }

?>

以上代码的输出:

Peter Griffin

mysql_fetch_array($result)

$result=mysql_query ('select * from table_name',"$db")

$result储存的不是row data。而是个resource id。这个resource id用于identify your the results of your query。用于

定义你命令的结果。

 需要与mysql_fetch_array()结合一起用去获得数据(只能一次获取)。用loop。

mysql_fetch_array()一行一行的得到数据,且返回的是数组。key是表格的字段名。用$row=mysql_fetch_array('').然后用$row['字段名']得到他的值。

看到194页。组织好自己的逻辑语句

相关语法:array  mysql_fetch_array( resource $result [, int $result_type = MYSQL_BOTH ] )

Returns an array that corresponds to the fetched row and moves the internal data pointer ahead.

Mysql中的数据存放形式。Database/table/column

对数据库中数据进行升序,降序

ORDER BY 关键词

ORDER BY 关键词用于对记录集中的数据进行排序。

语法

SELECT column_name(s)

FROM table_name

ORDER BY column_name

待续:

 

第二篇:php+mysql学习总结

php

字符串

反引号里面的字符必须是命令

如`pwd`

是查看当前目录

转移字符:

符号 含义

\” 双引号

\\ 反斜线

\n 换行

\t 跳位(Tab)

常量和变量

_FILE_

这个默认常量是php程序文件名

_LINE_

这个默认常量是php程序行数

E_ERROR

这个常量指到最近的错误处

E_WARNING

这个常量指到最近的警告处

E_PARSE

本常量为解析语法有何潜在问题处

自定义常量define(“ “,” “);

第一空格为常量,第二个为定义

define(? ?, );

同上

有$为变量,无为常量

object为类变量,如

class foo{

function do-foo(){

echo”Doing foo”;

}

}

$bar=new foo; //建立变量,其他语言有(),php语言没有。// $bar->do-foo(); //调用变量的方式。//

->为调用类函数用的符号

变量区分大小写

Php变量可以不用定义直接使用。

局部变量和全局变量的区别见第二章,第21分钟处图。

全局变量必须用$GLOBALS数组和global声明。配置文件的globals函数须打开

<pre>是什么????

$PHP_SELF //php文件名,全局变量

echo $GLOBALS[“PHP_SELF”];或

globals $PHP_SELF;

不能echo $PHP_SELF;

函数不区分大小写

静态变量static variable

老语法$foo直接用

新语法$_GET[?foo?] $_POST[?foo?] $_SESSION[?foo?]

位运算符:

&与 |或 ~非 ^异或 << 向左移位乘法 >> 向右移位除法 逻辑运算:

&& 而且AND ||或者OR Xor异或 !不Not

符号 意义

$ 变量

& 变量的地址(加在变量前)

-> 类的方法或属性

=> 数组的元素值

? : 三元运算符

数组

数组的下标可以是整数,也可以是字符串

如$user[0]=”张三”; $user[?zs?]=”张三”; $user[“zs”]=”张三”;

或$user=array(

“张三”, //下标0 echo $user[0];

?is?=>”李四”, //下标is echo $user[is];或echo $user[?is?]; “ww”=>”王五” //下标ww

);

echo sizeof($user); //记录数

多维数组

$user=array(

array(?张三?,88),

array(?李四?,95),

array(?王五?,99)

);

函数

函数不区分大小写

函数原型:

返回类型 函数名称(类型 参数1, 类型 参数2…..);

数学函数

number abs(number) 取绝对值|x|

float sin(float) 正弦计算sin(x)

float cos(float) 余弦计算cos(x)

float sqrt(float) 开平方根计算

float log(float) 自然对数计算lnx

float log10(float) lgx

float exp(float) e的x次方

float pow(float x,float y) x的y次方

double pi () 圆周率

void srand(int) 配置随机种子

int rand([int min],[int max]) 取得随机数

string strtolower(string str) 字符串全转为小写

string strtoupper(string str) 字符串全转换为大写

string trim(string str) 截去字符串首尾的空格

string substr(stringstring,int start,int[length]) 取子串

下标从0开始。从第start位取出length个字符,start为负数,从尾端算起,length为负数表示取倒数length个字符。第三章第七分钟

int strlen(string str) 取得字符串长度

int strpos(string母串,string待查字符,int[offset]) 寻找字符串中的某个字符最先出处 int strcmp(string str1,string str2) 字符串比较

string md5(string str) 计算字符串的MD5哈希值

fopen(“C:\\tmp\\a.txt”,”r”);

fopen(http://www.php/.net/”,”r”);

fopen(ftp://user:password@train150.zm/cxc/”.”r”);

int filesize(string filename); 获得文件大小

int feof(int fp); 测试文件指针是否指到文件尾

in fopen(string filename,string mode); 打开文件或者URL

int fclose(int fp); 关闭已打开的文件

string fread(int fp,int n);读取文件n个字节

string fgets(int fp,int n); 获得文件指针所指的行

本函数取得文件指针所指的行,返回字符串长度为行的长度减一

int fwrite(int fp,string string ,int [n]); 写入文件

int fputs((int fp,string str,int[n]); 写入文件

函数目录-----相对路径

./ 表示当前目录下

../ 表示上一级目录

/ 表示根目录

int mkdir(string pathname,int mode); 建立目录

int rmdir(string dirname);删除目录

int rename(string oldname,string newname);改名

int fsockopen(string hostname,int port,int[errno],string[errstr],int[timeout]); 打开网络的socket链接

string gethostbyname(string hostname); DNS查询,返回IP网址

array gethostbynamel(string hostname); 返回机器名称的所有IP

mysql 数据库函数

int mysql_connect(string[hostname][:port],string [username],string[password]); mysql服务器连接

int mysql_select_db(string database_name,int[link_identifier]); 选择一个数据库

int mysql_query(string query,int[link_identifier]); 执行sql串

int mysql_close(int[link_identifier]); 关闭mysql服务器连接

用户函数

声明函数:

function myfunc($arg_1,$arg_2,…,$arg_n)

{

执行一些步骤

return $retval;

}

参数的值通常使用传值方式输入,也可以使用传址的方式,传入参数的指针或(地址)。方法是在参数的前面加入&符号即可。

函数使用注意声明是局部变量或全局变量

Mysql

格式:mysql-h主机地址-u用户名-p用户密码

mysql //root用户登陆

mysql-uroot-p //超级管理员登陆,用户root,初始用户密码空。

操作mysql

mysql 数据库名

(1)显示数据库列表

show databases; //显示数据库列表

(2)显示库中的数据表

use 数据库名; #打开库

show tables; --显示

(3)显示数据库表的结构

describe 表名; 或desc 表名;

退出mysql

exit;

数据库数据目录 data/mysql/

每张表3个文件 .frm .MYD .MYI

建库

create database 数据库名;

删除库

drop database 数据库名;

drop database if exists 数据库名; #如果存在数据库则删除

select * from jokes; //从表jokes中挑选所有的东西

select id, jokedate from jokes; //选择感兴趣的列

select id, left(joketext,20), jokedate from jokes; //显示笑话正文的前20个字节

select count(*) from jokes; //统计笑话记录数

select count(*) from jokes where jokedate >=?2000-1-1?; //统计20xx年1月1日以后的笑话数量

select joketext from jokes where joketext like “%鞋%”; //笑话里包含鞋

select * from emp where sal in(slelect max(sal) from emp group by deptno)

嵌套子查询

group by //按某种字段查询,不理解要查,做菜单要用

反引号` //定界符

数据库和表名区分大小写

用户变量 @变量名

set @x=99 或

@x:=9

系统变量 @@变量名

全局变量使用

select @@global.sort_buffer_size;或

show global variables like ?sort_buffer_size?;

set global sort_buffer_size=value;或

set @@global.sort_buffer_size=value;

会话变量使用(局部变量) //本次会话有效

set session sort_buffer_size=value;或

set @@session.sort_buffer_size=value;或

set sort_buffer_size=value;

查看局部变量

select @@sort_buffer_size;或

select @@session.sort_buffer_size;或

show session variables like ?sort_buffer_size?;

decimal(5,2) //浮点数,总长度5位,小数位2。

numeric等价于decimal

无符号unsigned,//只正不负

日期和时间类型

datetime 2009-1-1 10:33 //?yyyy-mm-dd hh:mm:ss?

date 2009-1-1

timestamp 时间撮,精度为1秒

time 10:33

year 2009

字符串

char(10) //固定长度字符串,如本例为10字节

varchar(10) //可变长度字符串,最长11字节,需一个字节记录字符串长度 blob //保存可变长度二进制大对象,区分大小写

text //忽略字母大小写

enum //枚举 其值通常选自一个允许值列表

level enum(“A”,”B”,”C”,”D”);

mysql函数

比较运算符的结果是1(true)或0(false)或null(不确定)

expr(表达式) between min ang max //between返回1,否则返回0

expr in (v1,v2……) //如果expr是in 列表中的一值则返回1,否则返回0

ifnull(expr1,value)

如果expr1为空,ifnull返回value,否则返回expr1

case….one…//第七章11分

if(expr1,expr2,expr3)

如果expr1为真则返回expr2,否则返回expr3

nullif(expr1,expr2)

如果expr1=expr2为真,返回null,否则返回expr1

select ASCII(?2?) 或ASCII(2)或ASCII(?david?) //返回字符串最左边那个字符的ASCII码值

bin() //返回二进制形式

oct() //返回八进制形式

hex() //十六进制

char() //ASCII码值返回字符串

char_length(?dsf?) //返回字符串的字符个数

length(str) //返回字符串的字节数,一个汉字占两字节

concat(str1,str2,…) //将参数连接成字符串返回

select concat(?my?,?s?,?ql?); //mysql

locate(子串substr,母串str) //返回子串substr在母串str第一次出现的位置

instr(str,substr) //返回子串substr在母串str第一次出现的位置

lpad(str,len,padstr) //用字符串对str的左边填补padstr至他的长度达到len个字符串长度,然后返回str

rpad(str,len,padstr) //用字符串对str的右边填补padstr至他的长度达到len个字符串长度,然后返回str

left(str,len) //返回字符串左边的lenth个字符

right(str,len) //返回字符串右边的lenth个字符

substring(str,pos,len)

从字符串str的pos位置起返回len个字符的子串

mid(str,pos,len)= substring(str,pos,len)

ltrim(str) //去除左边空格

rtrim(str) //去除右边空格

trim(str) //去除左右空格或修饰

select trim(leading ?x? from ?xxxbarxxx?); //barxxx

select trim(both ?x? from ?xxxbarxxx?); //bar

select trim(trailing ?x? from ?xxxbarxxx?); //xxxbar

space(n) //n个空格

repeat(str,count) //返回一个由重复了count次的字符串str组成的字符串

replace(str,from_str,to_str) //在字符串str中所有from_str均被to_str替换,然后返回这个字符串

reverse(str) //以颠倒的字符顺序返回字符串str

lcase(str) 或 lower(str) //转换为小写

ucase(str) 或 upper(str) //转换为大写

load_file(file_name)

读入文件,并将文件内容作为一个字符串返回。这个文件必须在服务器上,必须指定文件完整的路径名,并且你必须有file权限。文件必须完全可读,并且小于max_allowed_packet。

如果该文件不存在,或因为上面的任一原因而不能读出,函数返回null。 Float div(float) //整除

select 5 div 2 //2

select 5/2 //2.5

select 5 mod 2 或 select 5 % 2 或 select mod(5,2) //1 ,取余数 floor(x) //返回不大于x的最大整数

ceiling(x) //返回大于x的最小整数

round(x) //将x四舍五入到最近整数

round(x,d) //将一个数字四舍五入到d个小数后返回

log(x,b) //返回x任意底b的对数

pi() //缺省显示5位小数

rand() //返回一个范围在0到1之间的随机浮点值。

rand(n) //n被指定,他被当成种子值使用(用于产生一个可重复的数值) now()或sysdate()或current_timestamp //返回当前的日期时间值

curdate()或current_date //返回当前日期值

curtime()或current_time //返回当前时间值

显式转换

cast(expression as type)或convert(expression,type)

database() //返回当前数据库名

user()或system_user()或 session_user() //返回当前mysql用户名 password(str) //对口令加密

数据操控语言DML

数据选择

select 列1,列2,…from表1,表2,…

[where 条件]

[group by…] //分组处理

[having…] //

[order by…] //排序处理

limit s,n //s:第s行,n:行的最大数目

员工表emp(empno,name,tel,deptno,sal)

部门表 dept(deptno,dname,addr)

select empno,name,dname from emp e,dept d

where e.deptno=d.deptno;

select empno,name,dname from emp join dept using(deptno);

select empno,name,dname from emp e join dept d on e.deptno=d.deptno;

desc //从高到低

数据插入

insert into 表(列1,列2,…)values(值1,值2,…)

insert into 表 values(值1,值2,…)

数据修改

update 表 set 列1=值1,列2=值2,…[where 条件];

删除

delete from 表 [where 条件];

truncate table 表;

加载数据

load data infile 文件 into table 表 [fields terminated by ?字符?];

load data infile ?C:/s/s.txt? into table teacher; 或 //s.txt tab键分隔

mysqlimport C:/s/s.txt; 或

load data infile ?C:/s/s.txt? into table teacher fields terminated by ?,?; //s.txt逗号分隔 导出

Select * from teacher into outfile ? C:/s/s.txt?;

.frm //表格式(定义)文件

.myd //数据库文件

.myi //索引文件

修改表名称

alter table t1 rename t2;

自动增长列必须被索引

删除列c

alter table t2 drop column c;

view //视图

create view emp_v as select name, deptno from test.emp //建立视图

alter view v as select qty,price,qty*price as value from t; //修改视图

drop view v //删除视图

alter table t2 add index(d), add unique index(b), add primary key(a); //添加匿名索引 unique //唯一索引

primary //主键

alter table t2 drop index d, drop index b, drop primary key; //修改匿名索引 create index idx_t2 on t2 (d) //添加索引

drop index idx_t2 on t2 //删除索引

存储函数

delimiter //输出

commit //提交,缺省自动提交

set autocommit=0 //取消自动提交

rollback //回滚

事物可以用start transaction定义

有些语句自动提交,无法回滚,如DDL语句

save point //回滚点

lock tables 表名[read][write], 表名[read][write],…

解锁

unlock tables

fulltext(title,body) //在标题和主体上建立全文索引

select * from articles

where match (title,match) against (?database?);

select * from articles where match (title,match)

against (?+mysql-yoursql? in boolean mode); 包含mysql不包含yoursql

逻辑全文索引

against:匹配串:

apple banana //找至少包含上面词中的一个的记录行

+apple+juice //两个词均被包含在内

+apple macintosh //包含词”apple”,但是如果同时包含”macintosh”,它的排列将更高一点 + apple-macintosh //包含”apple”但不包含” macintosh”

“some words” //可以包含”some words of wisdom”但不是”some noice words”

grant //授权

grant select,insert,update,delete on *.* to ?test_user?@?%? identified by ?123?;

% //任何主机

*.* //任何数据库上的任何对象,*表示任何

123 //密码

test_user //用户名

grant all privileges on *.* to admin@localhost identified by ?123? with grant option; //创建本地的完全超级用户”admin,口令?123?”

all privileges //完全的权限

with grant option //授权给其他用户

删除用户

revoke all on *.* from ?test_user?@ localhost;

revoke all //收回所有权限

flush privileges //刷新内存授权表

delete from user where user=?test_user?; // 删除用户

delete from user where host=?localhost? and user=??; //删除匿名用户

mysqladmin -uroot password 123 //添加密码123

mysqladmin –uroot -p123 password 456

或 set password for root=password(“456”);

或 update user set password=password(?456?) where user=?root?; //再改密码为456

mysqladmin –uroot –p456 password??

optimize table 表1,表2…; //mysql优化

load data infile ?路径? into table teacher;

或 mysqlimport school 路径(如C:/a/b.txt) //导入

mysqldump –opt school > school_2004_9.sql //将数据库school中的表全备份到school_2004_9.sql文本文件

mysqldump –opt school teacher student > school_2004_9.sql //仅备份表teacher和student mysqldump –databases school test > school_2004_9.sql //备份多个数据库

source school_2004_9.sql; //从备份文件恢复数据

select * from emp limit(2,5); //查第3到第7号员工的信息

select * from emp order by sal limit 0,5 ;= select * from emp order by sal limit 5;

mysql_data_seek(resource,int row_number)

将指定的结果标识所关联的mysql结果内部的行指针移动到指定的行号。接着用 mysql_fetch_row()将返回那一行,row_num从0开始

if(!($supername==$supervisor)||!($superpass==$superpsw)) //如果用户名和密码有一个错

action='$php_self? //自身执行

相对路径是: ../ (表示当前文件的上一级目录) ; ../../ (表示当前文件的上一级目录的再上一级目录) ; ./(表是当前目录); / (表示根目录)

$result=mysql_query("update vote set $select_result='{$number}',total='{$total}' where id=$id",$db);//当用$select_result表示某个字段(如result1到result9)传递$number,值等可用此表示法(当字段为变量)

路径:

$tempdir = str_replace("\\","/",substr(dirname(__FILE__),0,-6));

//这样做可以避免在虚拟空间站找不到路径的问题,

require $tempdir."/include/config.inc.php";

解决乱码

1选定代码片段

2选定修改----页面属性----标题/编码

3选择编码类型

4重新载入(这步不能省)

不懂

可直接用教程中文件名直接在百度提问,肯定有人和我学一样的东西

相关推荐