$_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
字符串
反引号里面的字符必须是命令
如`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重新载入(这步不能省)
不懂
可直接用教程中文件名直接在百度提问,肯定有人和我学一样的东西
其实我也是一样很新的新手,上PHP100学习视频并在论坛里学习其实也就是一个月前的事.虽然早在8月份花过一个星期看完w3schoo…
调试插入时考虑清楚字段类型避免插入后出现缺值乱码屏蔽错误ordie条件显示以前学习php类的总结1php中不能重载但是能用子类覆盖…
GETstring的介绍Isset和empty的介绍数据库数据类型1GETstring的介绍2GETstring他和POST的区别…
php学习心得适合php初学者来源发布时间20xx0918发布人浏览30人次字体大中小1页面之间无法传递变量getpostsess…
Php学习心得一、单引号和双引号PHP变量的运行机制是,将变量标识符$后的字符串,或表达式运算结果的字符串作为变量名,去变量池获取…
?在echo函数中,可以同时输出多个字符串,而在print函数中则只可以同时输出一个字符串。同时,echo函数并不需要圆括号,所以…
PHP语言基础简单整理1.开始结束标记?...?2.定义变量:$变量名例:$str=锦清笋;不需要指明数据类型3.输出语句:(1)…
20xx个人工作总结(苏江)时间一晃而过,转眼间到公司已经1月多了。这是我人生中弥足珍贵的一段经历。在这段时间里同事及领导们在工作…
文件目录函数库:一、文件常用操作1.file_exists():检查文件或目录是否存在语法:boolfile_exists($fi…
Abs取得绝对值Acos取得反余弦值adaafetch取得数据库的返回列adaautocommit开关自动改动功能adaclose…
一个学期的工作已经结束,收获不少,下面我对上学期的工作作一总结,为新学期的工作确立新的目标。在上一学期里,我在思想上严于律己,热爱…