php与mysql数据库cookie Session 分页学习笔记
下面整理了是一些在学习php mysql中我们一些常用的知识点,包括有分页,连接数据库及时登录与文件上会以的知识点,希望对各位有帮助.
- <?php
- $con = mysql_connect("localhost","root","222222");
- if (!$con)
- {
- die('Could not connect: ' . mysql_error());
- }
- echo "成功"
- //mysql_close($con); 关闭连接
- //var_dump($row); 打印出来
- //print_r(); 打印出来 没有上面功能强
- -------------------------------------------
- strlen("Hello world!"); //用于计算字符串的长度。
- strpos("Hello world!","world"); //用于在字符串内检索一段字符串或一个字符。
- -------------------------------------------
- 介绍数据库中常用字段类型
- //整数型:TINYINT,SMALLINT,INT,BIGINT
- //小数型:FLOAT,DOUBLE,DECIMAL(M,D)
- //字符型:CHAR,VARCHAR
- //日期型:DATETIME ,DATE,TIMESTAMP
- //备注型:TINYTEXT ,TEXT ,LONGTEXT
- //sql语句 大小写不敏感(系统的尽量大写)
- CREATE TABLE `test` ( //需要把整理设置成utf8_general_ci
- `id` int(10) NOT NULL auto_increment,
- `uid` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL default '0',
- `regdate` date NOT NULL,
- `remark` text NULL,
- PRIMARY KEY (`id`) //id为主键关键贞
- )
- //NOT NULL 不能为空 www.111cn.net
- //auto_increment 自动累加
- //varchar(10) default '0' 10个字符长度默认为0
- -------------------------------------------
- SELECT查询语句
- //SELECT 查询字段 FROM 表名 WHERE 条件
- 查询字段 : 可以使用通配符 * ,字段名,字段别名
- 表名:数据库.表名,表名
- 常用条件 :=等于,<>不等于,in包含,not in 不包含,like匹配
- BETWEEN在范围,not BETWEEN不在范围<,>
- 条件运算:and ,or ,()
- //eg: SELECT id, uid FROM `test` WHERE 1;指定查询id uid
- 别名使用
- //SELECT remark as r FROM `test` WHERE 1 别名使用 r 代替 remark
- =等于
- //SELECT * FROM `test` WHERE id=2; 查询id=2的
- <>不等于
- //SELECT * FROM `test` WHERE id<>2 查询id不等于2 的
- in包含
- //SELECT * FROM `test` WHERE id in(1,2,4);查询包含1,2,4的信息
- not in 不包含
- //SELECT * FROM `test` WHERE id not in (1,2,3);查询不包含1,2,3的信息
- like匹配
- //SELECT * FROM `test` WHERE `uid` like '%王%'; %是前后匹配,匹配到所有姓王的 `uid`是varchar 字符型要加上``
- BETWEEN在范围
- //SELECT * FROM `test` WHERE id BETWEEN 1 and 3 查询1-3这个范围内所有的信息
- not BETWEEN不在范围
- //SELECT * FROM `test` WHERE id not BETWEEN 1 and 3 查询不在1-3这个范的信息
- 多条件
- //SELECT * FROM `test` WHERE 吕辉' 多个条件查询,查询id=2并且uid=吕辉 的信息
- ---------------------------------------------------------
- 注:以下三个方法语句顺序不能乱; group by - order by - limit
- 分组语句:group by 字段(这里不需要条件语句)
- //SELECT * FROM `test` group by `remark`
- 排序语句:order by 字段 ,字段ASC(正序)/DESC(倒序)
- //SELECT * FROM `test` order by `regdate` DESC 倒序查询最新注册的
- //SELECT * FROM `test` order by `regdate` DESC , id ASC 注册日期倒序,id正序查询
- 指针查询:limit 初始值,结束值(这里不需要条件语句)
- //SELECT * FROM `test` limit 0,3 查询0到3条信息
- //SELECT * FROM `test` limit 4 (等同上,省略掉0,初始值省略)
- ---------------------------------------------------------
- 计算:
- COUNT(*)统计函数
- MAX(*)最大值函数
- MIN(*)最小值函数
- AVG(*)平均值函数
- SUM(*)累计值函数(∑)
- //SELECT MIN(id) FROM `test` WHERE 1 查询最小值的Id
- ---------------------------------------------------------
- insert插入语句
- //insert into 表名(字段...,...)values(值..,...);规范的
- //insert into 表名values(值..,..);不推荐使用
- eg:
- //insert into test (`id`,`uid`,`regdate`,`remark`) values('','张三',now(),'工人') id是auto++的可省略,now()系统现在时间
- //insert into test values('','李四',now(),'学生') 同样可以插入,但不推荐使用
- Update更新语句(不需要FROM)
- //UPDATE 表名 SET 字段 = 值 WHERE 条件 limit(可省略)
- eg:
- //update test set u where id=6 更新id=6的uid=php200
- Delete 删除语句(删除是无法恢复的)
- //DELETE FROM 表名 WHERE 条件 limit(可省略)
- eg:
- delete FROM test WHERE id=3 删除id=3 的信息 (尽量少使用,)
- -------------------------------------------------------------
- 其他常用Mysql函数介绍
- mysql_num_rows() //用于计算查询结果中共多少条信息
- //$sq = " SELECT * FROM messages order by id DESC "; //查找数据表并倒序
- //$sque = mysql_query($sq);
- //echo mysql_num_rows($sque);
- mysql_insert_id //传回最后一次使用 INSERT 指令的 ID。
- mysql_tablename //取得数据库名称
- mysql_error //返回错误信息
- mysql_close //关闭 MySQL 链接
- ----------------------------------------------------------
- isset($views) //判断变量是否存在
- function_exists() //判断函数是否存在
- 两种查询函数array / row区别
- //mysql_fetch_row(result);(不常用)
- //mysql_fetch_array($sque,MYSQL_ASSOC);(常用)
- //以上二种需配合while($row=mysql_fetch_array($sque,MYSQL_ASSOC)){}循环使用才能输出数据库全部内容;
- 延时跳转
- header("Refresh:5;url=login.php");
- ----------------------------------------------------------
- str_relace(被替换的值,替换的值,被替换的内容)
- $lin='ss sd df';
- //str_relace(" "," ",$lin);替换空格
- function htmtocode($con) {空格和换行替换成html标签
- // $con=str_replace("n","<br>",str_replace(" "," ",$con));
- // return $con;
- }
- ------------------------------------------------------------
- htmlspecialchars格式化html
- //主要功能是将html格式化,防止在输出html时被浏览器执行;
- //htmlspecialchars(所要格式化对象,定义单双引号,编码)
- ------------------------------------------------------------
- setcookie("TEST","value",3600,"/dir",".domains.com",true);
- //TEST cookie名
- //value cookie值
- //3600 保存时间
- //dir cookie保存路径
- //.domains.com 起效域名
- //true https 发送
- //注意:使用php cookie当场不能生效,需要刷新一次
- ----------------------------------
- PHP会话Session的具体使用方法解析
- //PHP会话Session与Cookie的最大不同之处是,其实存储在服务器端的,对于远程用户来说,
- //是无法对PHP会话Session文件的内容进行任何修改的。
- 开始 PHP Session
- //详细 http://www.w3school.com.cn/php/php_sessions.asp
- session_start(); //1,启动必须在html标签前面
- $_SESSION['views']=1;//2,设置
- $_SESSION[''];//3,获取
- unset($_SESSION['views']);//4,删除
- session_destroy()//,彻底终结 将重置 session,您将失去所有已存储的 session 数据。
- isset() //函数检测是否已设置 "views" 变量
- //if(isset($_SESSION['views']))
- file_exists("welcome.txt") //检测文件是否存在
- ------------------------------------------------------------
- PHP+MYSQL分页原理
- 1.SQL语句中的limit用法
- 分页原理
- //所谓分页显示,也就是将数据库中的结果集,分成一段一段来显示
- 需要的条件
- //前10条记录:select*form table limit 0,10
- //第11至20条记录:select * from table limit 10,10
- //第21至30条记录:select * from table limit 20,10
- 公式:
- (当前页数-1)*每页条数,每页条数
- // select * from table limit($Page-1)*$PageSize,$PageSize
- ----------------------------------------------------------
- parse_url()
- //是将URL解析成为固定键值名称的数组和函数
- ---------------------------------------------
- $_SERVER["REQUEST_URI"];
- //REQUEST_URL的作用是取得当前URL,也就是除域名外后面的完整的地址路径;
- eg:
- // http://www.php100.com/home.php?id=22&cid=21
- //echo $SERVER["REQUEST_URI"]
- //结果为:/home.php?id=22&cid=21
- --------------------------------------------------------
- PHP上传原理及应用
- 1、FORM标签enctype属性
- 2、$_FILES 系统函数
- 3、move_uploaded_file函数
- 4、is_uploaded_file 函数
- ---------------------------------------------------------
- fopen() 函数用于在 PHP 中打开文件。
- //fopen("welcome.txt","r");
- // 模式 描述
- // r 只读。在文件的开头开始。
- // r+ 读/写。在文件的开头开始。
- // w 只写。打开并清空文件的内容;如果文件不存在,则创建新文件。
- // w+ 读/写。打开并清空文件的内容;如果文件不存在,则创建新文件。
- // a 追加。打开并向文件文件的末端进行写操作,如果文件不存在,则创建新文件。
- // a+ 读/追加。通过向文件末端写内容,来保持文件内容。
- // x 只写。创建新文件。如果文件已存在,则返回 FALSE。
- // x+
- // 读/写。创建新文件。如果文件已存在,则返回 FALSE 和一个错误。
- // 注释:如果 fopen() 无法打开指定文件,则返回 0 (false)。
- //如果 fopen() 不能打开指定的文件,下面的例子会生成一段消息:
- //$file=fopen("welcome.txt","r") or exit("Unable to open file!");
- fclose() 函数用于关闭打开的文件。
- //$file = fopen("test.txt","r"); fclose($file);
- feof() 函数检测是否已达到文件的末端 (EOF)。
- 在循环遍历未知长度的数据时,feof() 函数很有用。
- //if (feof($file)) echo "End of file";
- fgets() 函数用于从文件中逐行读取文件。
- // $file = fopen("welcome.txt", "r") or exit("Unable to open file!");
- // while(!feof($file))
- // {
- // echo fgets($file). "<br />";
- // }
- // fclose($file)
- fgetc() 函数用于从文件逐字符地读取文件。
- // $file=fopen("welcome.txt","r") or exit("Unable to open file!");
- while (!feof($file))
- // {
- // echo fgetc($file);
- // }
- // fclose($file);
- ------------------------------------------------------
- PHP 文件上传
- // <form action="upload_file.php" method="post" enctype="multipart/form-data">
- // <input type="file" name="file" />
- // </form>
- $_FILES["file"]["name"] - 被上传文件的名称
- $_FILES["file"]["type"] - 被上传文件的类型
- $_FILES["file"]["size"] - 被上传文件的大小,以字节计
- $_FILES["file"]["tmp_name"] - 存储在服务器的文件的临时副本的名称
- $_FILES["file"]["error"] - 由文件上传导致的错误代码
- eg:
- if ($_FILES["file"]["error"] > 0)
- {
- echo "Error: " . $_FILES["file"]["error"] . "<br />";
- }
- else
- {
- echo "Upload: " . $_FILES["file"]["name"] . "<br />";
- echo "Type: " . $_FILES["file"]["type"] . "<br />";
- echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
- echo "Stored in: " . $_FILES["file"]["tmp_name"];
- }