11.28

今天学习了一些比较有意思的东西,也就是用PHP操作MYSQL,然后再展示在HTML页面上,当然还有其他的内容。

首先是MYSQL的连接,分为①内连接②外连接③自然连接。

内连接:select <*|字段列表> from 左表 inner join 右表 on 左表.字段 = 右表.字段;

1.把两个表的指定字段的值进行每行数据的校对,全部指定字段都相同的行则以左表+右表的形式连接起来,其余的不显示。

2.其中inner可以省略,当左右两表进行对比的字段名相同时,表名可以省略。On可以用where替代。

外连接:

On不可用where替代,outer可省略。

1.左外连接:select <*|字段列表> from 左表 inner join 右表 on 左表.字段 = 右表.字段;

与内连接相似,不过即使左右两表匹配不成功时,仍会显示左侧表,并且右表的数据的值用null替代,与左表连接后显示。

2.右外连接:select <*|字段列表> from 左表 inner join 右表 on 左左表.字段 = 右表.字段;

与左外连接同理,不过右外连接固定显示的右表,而左表不匹配时使用null填充。

自然连接:

Select <*|字段列表> from 左表 natural join 右表;

1.两表进行匹配时,匹配规则由系统决定,自动匹配两表相同字段名的值,相同时便连接,不同则略过。

2.显示与内外连接不同,相同字段只保留显示一个,而内外链接是简单的进行首位拼接。并且匹配的字段将会置于表的首位。

3.同样有自然内连接,自然左外连接,自然右外连接。

子查询(一条select语句中插入一条或多条select语句)

                  课堂只讲了子查询的分类,没什么实际意义。不过子查询简单来理解就是select的嵌套,也就是在使用前先进行逻辑拆分,把求一个目的的条件拆分几个步骤,然后每个步骤化为一个select语句。

列子查询:

子查询的结果为一个列的值,通常用来搭配in和not in ,判断表内同一个字段的值是否等于子查询的集合。

行子查询:

子查询的结果为一个行,使用时同样要用同样多的字段用括号括起来去和子查询的结果匹配。用于需要查找多个列符合条件的情况。

表子查询:

子查询的结果为一个表,一般当作数据源进行二次查询,子查询的结果最好带上别名。一般置于from关键字之后。

Exists子查询:

用于判断子查询是否查询到数据。注册账户不可重名功能可应用。置于select之后。

PHP操作MYSQL

                  首先PHP在操作MYSQL时相当于MYSQL的一个客户端,也就是说要完成:

1.建立连接和认证2.发送操作指令3.返回处理结果4.断开连接。

1)         建立连接和认证

mysql_connect()

$link = mysql_connect(“localhost:3306”,’root’,’123456’);

定义一个变量link,把函数赋予link,函数中参数:主页:端口,账号,密码。

2)         发送操作指令

mysql_query()

共两个参数,第一个参数为SQL语句,第二个参数为连接资源,缺省为最近一次打开的连接资源。

$sql = “set names utf8”;

$link = mysql_connect(“localhost:3306”,’root’,’123456’);

$result = mysql_query($sql[,$link]);

3)         返回处理结果

返回的数据一种为布尔型,既能用来判断语句是否正常执行,没出错。

如果执行的SQL语句有数据返回,那么返回的数据即为资源型。但是使用要用专门的函数来在PHP中使用SQL数据。

4)         断开连接

mysql_close();

mysql_close($link);

注意不能用unset删除$link来达到断开连接都为目的

PHP提取资源结果集

mysql_fetch_array(资源结果集,返回设置参数)

将资源结果集,遍历每行数据,返回一个关联和索引并存的数组。

mysql_fetch_array(资源结果集,MYSQL_BOTH)

MYSQL_BOTH(缺省值),同时返回关联和索引数组

mysql_fetch_array(资源结果集,MYSQL_ASSOC)

MYSQL_ASSOC,只返回关联数组

mysql_fetch_array(资源结果集,MYSQL_NUM)

MYSQL_NUM,只返回索引数组

mysql_fetch_assoc()

相当于mysql_fetch_array(资源结果集,MYSQL_ASSOC);

只返回关联下标

mysql_fetch_row()

相当于mysql_fetch_array(资源结果集,MYSQL_NUM);

只返回索引数组

资源结果集的遍历

$rows = array();

While($row = mysql_fetch_assoc($result)){

$rows[] = $row;

}

将资源结果集的每行数据放在变量$row中,然后每个$row的一维数组都将存放在$rows中,则$rows为一个二维数组。

错误调试函数

PHP在执行SQL命令时采用静默模式,也就是说SQL命令执行时出现的错误并不会返回到用户。

mysql_errno()

获取错误的编号

mysql_error()

获取错误的信息

$link = @ mysql_connect(“localhost:3306”,’root’,’123456’);

封装数据库连接文件

使用较频繁的指令直接封装成一个PHP文件。比如数据库的连接,错误信息的返回,断开连接等。使用时直接调用即可。

时间: 2024-10-23 19:35:09

11.28的相关文章

11.28 限定某个目录禁止解析php;11.29 限制user_agent;11.30,11.31 php相关配置(上下)

扩展: apache开启压缩  http://www.aminglinux.com/bbs/thread-5528-1-1.html apache2.2到2.4配置文件变更  http://www.aminglinux.com/bbs/thread-7292-1-1.html apache options参数  http://www.aminglinux.com/bbs/thread-1051-1-1.html apache禁止trace或track防止xss  http://www.aming

11.28 限定某个目录禁止解析php;11.29 限制user_agent;11.30-11.31

扩展 : apache开启压缩 : http://ask.apelearn.com/question/5528 apache2.2到2.4配置文件变更 : http://ask.apelearn.com/question/7292 apache options参数 : http://ask.apelearn.com/question/1051 apache禁止trace或track防止xss : http://ask.apelearn.com/question/1045 apache 配置htt

11.28限定某个目录禁止解析php11.29限制user_agent11.30-31php相关配置

11.28 限定某个目录禁止解析php例如一些目录允许上传图片,为防止有人上传带有病毒php文件,所以禁止php解析,一般存放静态的文件上的目录是不允许解析PHP文件的重新加载配置文件 创建upload目录,访问提示403状态码在浏览器打开是无法打开的,连访问的机会都没有将下图的注释掉再重新加载后测试,这时候不能解析了,显示它的源代码在浏览器打开提示下载11.29 限制user_agentvim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf重

11.28 限定某个目录禁止解析php 11.29 限制user_agent 11.30/11.31

11.28 限定某个目录禁止解析php 核心配置文件内容<Directory /data/wwwroot/www.123.com/upload>php_admin_flag engine off</Directory>curl测试时直接返回了php源代码,并未解析 curl -x127.0.0.1:80 'http://123.com/upload/123.php' 11.29 限制user_agent user_agent可以理解为浏览器标识核心配置文件内容<IfModul

2018.11.28 Android踩坑(读写文件)

在学到使用Android Device Monitor 查看文件的时候,发现Android Device Monitor在Android Studio里面找不到了,网上查了原来是被官方弃用了,现在通过命令行的方式启动 1.打开Project Structure找到sdk安装路径 2.找到这个路径打开里面tools文件夹下面的monitor.bat双击运行即可打开Android Device Monitor 虽然说找到了Android Device Monitor,但是打开报了个Could not

2015.11.23 --- 2015.11.28 线性代数

这一周主要学习了一些内容,包括: 1)从感性认识上认识什么是线性代数,并且从思想上认识到线性代数是有用的. 2)简单的了解了矩阵的加,减,乘.这些都是一些人为规定的一些规则.掌握即可. 3)矩阵的逆,从基本的方法(余子式→代数余子式→伴随矩阵)和高斯方法来求解矩阵的逆. 4)讲了和矩阵相关的几个应用:包括线性方程组和向量的表达,并且从中,我们学习到了从不同的问题中抽象出问题的本质是一样的数学问题. 5)如果一个矩阵的逆是不存在或者是没有定义的,其原因是|A| = 0 . A的逆 = 1 / |A

HTML5与CSS3基础教程读书笔记 2015/11/28

第七章 1.css分类 (1)控制基本格式的属性:font-size和color (2)控制布局的属性:position和float (3)控制在哪里换页的打印控制元素 (4)控制项目显示和消失的动态属性 (5)创建下拉列表和其他交互性组件 2.css3的新特性 圆角.阴影效果.文字阴影.自定义字体.旋转文本.半透明背景颜色.多图像背景.渐变等 3.基本格式 注意,上一行没写完的换到下一行要空连个字符 注:h1叫做选择器(h1和{之间最好用一个空格隔开),{}之间叫做声明块 提示:可以添加空格和

【final】站立会议---11.28

名称:nice! 组长:李权 成员:韩媛媛 刘芳芳 宫丽君 于淼 项目名称:约跑app 时间:11月28日 12:30 内容: 新任务的分配 1.李权分配任务 2.韩媛媛写站立会议 3.刘芳芳修改BUG 4.李权整合地图模块到项目中. 5.宫丽君写这周团队要求的文档 6. 于淼提出地图模块由韩媛媛完成 7.韩媛媛同意尽全力做地图显示及GPS定位模块 本周任务: 1.    进行地图注册,得到key码 2.地图增加控件,与设置权限,制作普通地图 3.对普通地图进行调试,解决闪退等BUG 4.学习安

【2016.11.28】纯HTML仿微博注册页面

效果如图 代码 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>新浪微博</title> </head> <body bgcolor="#BEE1F5"> <table align="center" width="896" height="186

2017/11/28学习总结

1.浏览器css html js书写一般采用绝对路径 ${pageContext.request.contextPath} <%=request.getContextPath()%> 可以获取配置的应用程序名2. redirectPort端口的作用 http协议是不安全的 https协议是安全的 配置好SSL之后可以用过https协议通信 需要安全通信的场合,将把客户请求转发至SSL的redirectPort端口 3.Context表示上下文,代表的就是一个JavaWeb应用,Context元