是什么??
?
?
$PHP_SELF//php文件名,全局变量
echo$GLOBALS[“PHP_SELF”];或
globals$PHP_SELF;
不能echo$PHP_SELF;
函数不区分大小写
静态变量staticvariable
老语法$foo直接用
新语法$_GET[‘foo’]$_POST[‘foo’]$_SESSION[‘foo’]
位运算符:
&与|或~非^异或<<向左移位乘法>>向右移位除法
逻辑运算:
&&而且AND||或者ORXor异或!
不Not
符号意义
$变量
&变量的地址(加在变量前)
->类的方法或属性
=>数组的元素值
?
:
三元运算符
数组
数组的下标可以是整数,也可以是字符串
如$user[0]=”张三”;$user[‘zs’]=”张三”;$user[“zs”]=”张三”;
或$user=array(
“张三”,//下标0echo$user[0];
‘is’=>”李四”,//下标isecho$user[is];或echo$user[‘is’];
“ww”=>”王五”//下标ww
);
echosizeof($user);//记录数
多维数组
$user=array(
array(‘张三’,88),
array(‘李四’,95),
array(‘王五’,99)
);
函数
函数不区分大小写
函数原型:
返回类型函数名称(类型参数1,类型参数2…..);
数学函数
numberabs(number)取绝对值|x|
floatsin(float)正弦计算sin(x)
floatcos(float)余弦计算cos(x)
floatsqrt(float)开平方根计算
floatlog(float)自然对数计算lnx
floatlog10(float)lgx
floatexp(float)e的x次方
floatpow(floatx,floaty)x的y次方
doublepi()圆周率
voidsrand(int)配置随机种子
intrand([intmin],[intmax])取得随机数
stringstrtolower(stringstr)字符串全转为小写
stringstrtoupper(stringstr)字符串全转换为大写
stringtrim(stringstr)截去字符串首尾的空格
stringsubstr(stringstring,intstart,int[length])取子串
下标从0开始。
从第start位取出length个字符,start为负数,从尾端算起,length为负数表示取倒数length个字符。
第三章第七分钟
intstrlen(stringstr)取得字符串长度
intstrpos(string母串,string待查字符,int[offset])寻找字符串中的某个字符最先出处
intstrcmp(stringstr1,stringstr2)字符串比较
stringmd5(stringstr)计算字符串的MD5哈希值
fopen(“C:
\\tmp\\a.txt”,”r”);
fopen(http:
//www.php/.net/”,”r”);
fopen(ftp:
//user:
password@train150.zm/cxc/”.”r”);
intfilesize(stringfilename);获得文件大小
intfeof(intfp);测试文件指针是否指到文件尾
infopen(stringfilename,stringmode);打开文件或者URL
intfclose(intfp);关闭已打开的文件
stringfread(intfp,intn);读取文件n个字节
stringfgets(intfp,intn);获得文件指针所指的行
本函数取得文件指针所指的行,返回字符串长度为行的长度减一
intfwrite(intfp,stringstring,int[n]);写入文件
intfputs((intfp,stringstr,int[n]);写入文件
函数目录-----相对路径
./表示当前目录下
../表示上一级目录
/表示根目录
intmkdir(stringpathname,intmode);建立目录
intrmdir(stringdirname);删除目录
intrename(stringoldname,stringnewname);改名
intfsockopen(stringhostname,intport,int[errno],string[errstr],int[timeout]);打开网络的socket链接
stringgethostbyname(stringhostname);DNS查询,返回IP网址
arraygethostbynamel(stringhostname);返回机器名称的所有IP
mysql数据库函数
intmysql_connect(string[hostname][:
port],string[username],string[password]);mysql服务器连接
intmysql_select_db(stringdatabase_name,int[link_identifier]);选择一个数据库
intmysql_query(stringquery,int[link_identifier]);执行sql串
intmysql_close(int[link_identifier]);关闭mysql服务器连接
用户函数
声明函数:
functionmyfunc($arg_1,$arg_2,…,$arg_n)
{
执行一些步骤
return$retval;
}
参数的值通常使用传值方式输入,也可以使用传址的方式,传入参数的指针或(地址)。
方法是在参数的前面加入&符号即可。
函数使用注意声明是局部变量或全局变量
Mysql
格式:
mysql-h主机地址-u用户名-p用户密码
mysql//root用户登陆
mysql-uroot-p//超级管理员登陆,用户root,初始用户密码空。
操作mysql
mysql数据库名
(1)显示数据库列表
showdatabases;//显示数据库列表
(2)显示库中的数据表
use数据库名;#打开库
showtables;--显示
(3)显示数据库表的结构
describe表名;或desc表名;
退出mysql
exit;
数据库数据目录data/mysql/
每张表3个文件.frm.MYD.MYI
建库
createdatabase数据库名;
删除库
dropdatabase数据库名;
dropdatabaseifexists数据库名;#如果存在数据库则删除
select*fromjokes;//从表jokes中挑选所有的东西
selectid,jokedatefromjokes;//选择感兴趣的列
selectid,left(joketext,20),jokedatefromjokes;//显示笑话正文的前20个字节
selectcount(*)fromjokes;//统计笑话记录数
selectcount(*)fromjokeswherejokedate>=’2000-1-1’;//统计2000年1月1日以后的笑话数量
selectjoketextfromjokeswherejoketextlike“%鞋%”;//笑话里包含鞋
select*fromempwheresalin(slelectmax(sal)fromempgroupbydeptno)
嵌套子查询
groupby//按某种字段查询,不理解要查,做菜单要用
反引号`//定界符
数据库和表名区分大小写
用户变量@变量名
set@x=99或
@x:
=9
系统变量@@变量名
全局变量使用
select@@global.sort_buffer_size;或
showglobalvariableslike‘sort_buffer_size’;
setglobalsort_buffer_size=value;或
set@@global.sort_buffer_size=value;
会话变量使用(局部变量)//本次会话有效
setsessionsort_buffer_size=value;或
set@@session.sort_buffer_size=value;或
setsort_buffer_size=value;
查看局部变量
select@@sort_buffer_size;或
select@@session.sort_buffer_size;或
showsessionvariableslike‘sort_buffer_size’;
decimal(5,2)//浮点数,总长度5位,小数位2。
numeric等价于decimal
无符号unsigned,//只正不负
日期和时间类型
datetime2009-1-110:
33//’yyyy-mm-ddhh:
mm:
ss’
date2009-1-1
timestamp时间撮,精度为1秒
time10:
33
year2009
字符串
char(10)//固定长度字符串,如本例为10字节
varchar(10)//可变长度字符串,最长11字节,需一个字节记录字符串长度
blob//保存可变长度二进制大对象,区分大小写
text//忽略字母大小写
enum//枚举其值通常选自一个允许值列表
levelenum(“A”,”B”,”C”,”D”);
mysql函数
比较运算符的结果是1(true)或0(false)或null(不确定)
expr(表达式)betweenminangmax//between返回1,否则返回0
exprin(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
selectASCII(‘2’)或ASCII
(2)或ASCII(‘david’)//返回字符串最左边那个字符的ASCII码值
bin()//返回二进制形式
oct()//返回八进制形式
hex()//十六进制
char()//ASCII码值返回字符串
char_length(‘dsf’)//返回字符串的字符个数
length(str)//返回字符串的字节数,一个汉字占两字节
concat(str1,str2,…)//将参数连接成字符串返回
selectconcat(‘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)//去除左右空格或修饰
selecttrim(leading‘x’from‘xxxbarxxx’);//barxxx
selecttrim(both‘x’from‘xxxbarxxx’);//bar
selecttrim(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。
Floatdiv(float)//整除
select5div2//2
select5/2//2.5
select5mod2或select5%2或selectmod(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(expressionastype)或convert(expression,type)
database()//返回当前数据库名
user()或system_user()或session_user()//返回当前mysql用户名
password(str)//对口令加密
数据操控语言DML
数据选择
select列1,列2,…from表1,表2,…
[where条件]
[groupby…]//分组处理
[having…]//
[orderby…]//排序处理
limits,n//s:
第s行,n:
行的最大数目
员工表emp(empno,name,tel,deptno,sal)
部门表dept(deptno,dname,addr)
selectempno,name,dnamefromempe,deptd
wheree.deptno=d.deptno;
或
selectempno,name,dnamefromempjoindeptusing(deptno);
selectempno,name,dnamefromempejoindeptdone.deptno=d.deptno;
desc//从高到低
数据插入
insertinto表(列1,列2,…)values(值1,值2,…)
insertinto表values(值1,值2,…)
数据修改
update表set列1=值1,列2=值2,…[where条件];
删除
deletefrom表[where条件];
truncatetable表;
加载数据
loaddatainfile文件intotable表[fieldsterminatedby‘字符’];
如
loaddatainfile‘C:
/s/s.txt’intotableteacher;或//s.txttab键分隔
mysqlimportC:
/s/s.txt;或
loaddatainfile‘C:
/s/s.txt’intotableteacherfieldsterminatedby‘,’;//s.txt逗号分隔
导出
Select*fromteacherintooutfile’C:
/s/s.txt’;
.frm//表格式(定义)文件
.myd//数据库文件
.myi//索引文件
修改表名称
altertablet1renamet2;
自动增长列必须被索引
删除列c
altertablet2dropcolumnc;
view//视图
createviewemp_vasselectname,deptnofromtest.emp//建立视图
alterviewvasselectqty,price,qty*priceasvaluefromt;//修改视图
dropviewv//删除视图
altertablet2addindex(d),adduniqueindex(b),addprimarykey(a);//添加匿名索引
unique//唯一索引
primary//主键
altertablet2dropindexd,dropindexb,dropprimarykey;//修改匿名索引
createindexidx_t2ont2(d)//添加索引
dropindexidx_t2ont2//删除索引
存储函数
delimiter//输出
commit//提交,缺省自动提交
setautocommit=0//取消自动提交
rollback//回滚
事物可以用starttransaction定义
有些语句自动提交,无法回滚,如DDL语句
savepoint//回滚点
锁
locktables表名[read][write],表名[read][write],…
解锁
unlocktables
fulltext(title,body)//在标题和主体上建立全文索引
select*fromarticles
wherematch(title,match)against(‘database’);
select*fromarticleswherematch(title,match)
against(‘+mysql-yoursql’inbooleanmode);包含mysql不包含yoursql
逻辑全文索引
against:
匹配串:
applebanana//找至少包含上面词中的一个的记录行
+apple+juice//两个词均被包含在内
+applemacintosh//包含词”apple”,但是如果同时包含”macintosh”,它的排列将更高一点
+apple-macintosh//包含”apple”但不包含”macintosh”
“somewords”//可以包含”somewordsofwisdom”但不是”somenoicewords”
grant//授权
grantselect,insert,update,deleteon*.*to‘test_user’@’%’identifiedby‘123’;
%//任何主机
*.*//任何数据库上的任何对象,*表示任何
123//密码
test_user//用户名
grantallprivilegeson*.*toadmin@localhostidentifiedby‘123’withgrantoption;//创建本地的完全超级用户”admin,口令’123’”
allprivileges//完全的权限
withgrantoption//授权给其他用户
删除用户
revokeallon*.*from‘test_user’@localhost;
revokeall//收回所有权限
flushprivileges//刷新内存授权表
deletefromuserwhereuser=’test_user’;//删除用户
deletefromuserwherehost=’localhost’anduser=’’;//删除匿名用户
mysqladmin-urootpassword123//添加密码123
mysqladmin–uroot-p123password456
或setpasswordforroot=password(“456