PHP基础学习笔记

写在前面:本文是为了用TinkPHP搭建服务端而学习的php基础,后面会更新ThinkPHP学习笔记,敬请期待~~
针对读者:本文写得较略,适合有一门编程语言基础的童鞋阅读

文章目录

  • PHP基础
    • 1.1apache知识
      • 1.1.1几个概念
      • 1.1.2客户端和服务器
      • 1.1.3端口和端口号
      • 1.1.4前台和后台
      • 1.1.5 站点
    • 1.2Apache的安装
      • 1.2.1获取安装包
      • 1.2.2测试服务器
      • 1.2.3 apache的服务器的操作
      • 1.2.4 目录结构
    • 1.3 php安装
    • 1.4 MySQL的安装
    • 1.5 LAMP和WAMP
    • 1.6集成环境的安装
    • 1.7更改虚拟目录
    • 1.8更改首页
    • 1.9更改监听端口
    • 1.10DNS解析
    • 1.11虚拟主机的配置
    • 1.12总结
    • 2.1回顾
    • 2.2PHP简介
    • 2.3PHP四种定界符
      • 2.3.1 标准风格
      • 2.3.2 短标记风格
      • 2.3.4 asp风格
      • 2.3.5 Script标记风格
    • 2.4PHP执行原理
    • 2.5PHP语法的特点
    • 2.6 变量
      • 2.6.1变量的命名规则
      • 2.6.2变量的赋值
      • 2.6.3 销毁变量
      • 2.6.4可变变量
    • 2.7常量
    • 2.8变量的数据类型
      • 2.8.1标量的数据类型
      • 2.8.2复合类型
      • 2.8.3特殊类型
      • 2.8.4字符串
    • 2.9输出语句
    • 2.10php注释
    • 2.11运算符
    • 2.12多路选择
    • 2.13循环语句
      • 2.13.1 for循环
      • 2.13.2 while
      • 2.13.3 do-while
      • 2.13.4 foreach
    • 2.14函数
    • 2.15 数组分类
    • 2.16编码乱码问题
  • 综合项目
    • 1.PHP开启MySQL扩展
    • 1.1创建数据库
    • 1.2连接数据库
    • 1.3终止执行
    • 1.4选择数据库、查询数据库
    • 1.5取出结果集中数据(mysql_fetch_row)
    • 1.6取出结果集中数据(mysql_fetch_assoc)

PHP基础

1.1apache知识

1.1.1几个概念

静态网站:不支持数据交互的网站吗,(html html)

动态网站:支持数据交互的网站。动态网站中是可以操作静态网页的

实现动态网站技术 网站后缀
ASP .PHP
PHP .php
.NET .asqx
JAVA .jsp

除了ASP不要学外,其它三种随便学。因为asp是永远链接,链接了就不断了,所以只能做小网站。

php容易且开源,最快的时候可以30分钟一个网站,直接套模板非常非常快。

1.1.2客户端和服务器

客户端给服务器发送一个请求——(http请求),服务器会把静态资源(HTML代码、图片、js、CSS),客户端通过浏览器解析

1.1.3端口和端口号

端口号范围是0-65535,1024以下的端口号留给系统.。80端口一般留给WEB服务用,21端口留给FTP用。25端口留给邮件服务器用。端口类似一道门,端口号就是门牌号。服务器就是一幢大厦。

所以如果将来要用端口的话,把端口调大一点

(在本地把网站做好了,要传到服务器上就用flashfxp工具,是一款ftp工具。)

如何查询端口号占用情况:

开始-运行-cmd 【command命令】

在命令行输入 netstat -ano

​ CS架构,比如qq,Mysql数据库。

1.1.4前台和后台

前台是给浏览者,后台由管理员操纵,后台用来操作前台数据,比如我们在qq空间发说说,编辑的时候就在后台操作,

1.1.5 站点

将与网站有关的素材都存放到一个文件夹,此文件夹就是站点。

1.2Apache的安装

思考:语言的运行要不要环境

答:语言的运行都需要环境,Apache为PHP运行提供了环境。IIS也可以为PHP运行提供环境,IIS是微软公司开发的,为asp和aspx提供环境。但一般php还是选apache。

1.2.1获取安装包

注:在apache的安装路径中不能出现中文

为了便于管理,在F盘新建wamp文件夹(Windows,Apache,MySQL,PHP)在此文件夹下再并列建立apache,mysql,php文件夹

the feature and all subfeatures will be installed on local head drive:将功能和所有子功能都安装到本地硬盘上。

安装完毕后,状态栏的右下角会出现一个羽毛状的图标,这就事Apache的图标

1.2.2测试服务器

在浏览器的地址栏中输入http://localhost,如果看到it works表示服务器正常

localhost:本地主机 ip地址是127.0.0.1

所以测试时写http://127.0.0.1也可以。

这里就得注意服务器的概念,搞网络的人说去买台服务器吧,那是指一台机子,但是说到客户端请求服务器,就可以具体化,就是请求这个apache也叫服务器软件。

一台电脑其实可以做多个服务器,可以做邮电服务器,做数据库服务器,还可以做php服务器。人家让你把服务器重启一下,你总不能把这台机子重新启动吧。说的重启服务器只需要移到俺怕车图标上点击restart。

1.2.3 apache的服务器的操作

我们说的服务器是apache。

副武器的操作有:

  1. 启动
  2. 关闭
  3. 重启

操作方法一:点击apache图标(状态栏)

apache2.2-启动(start)/停止(stop)/重启(restart)

操作方法二:双击apache图标,会打开apache的控制面板,在面板上可以启动/停止/和重启

操作方法三:控制面板-管理工具-服务

win10是:控制面板——系统和安全——管理工具——服务

1.2.4 目录结构

本机apache装在D盘APM文件夹下,与之并列的还有mysql和php-5.6.36

bin——apache的命令文件夹(二进制命令)

conf——apache的配置文件夹,里面的httpd.conf就是apache的配置文件。

htdocs——虚拟目录(就是站点,比站点强大点)站点可以随便放,比如放到c盘d盘之类的,但虚拟目录不能,这个文件定死了就在这里,如果要改还得该配置文件

1.3 php安装

装apache是装PHP的运行环境,php是一门语言,还得装它的运行规则,有点类似jdk

  1. 获得安装包

php-5.2.8-win32-installer.msi这个版本虽然地点,但是装完不用配置,因为装的过程中会让你指向apache配置文件夹。其他版本要配置

  1. 安装步骤

安装完毕后,要重启服务器,点一下restart

  1. php测试

在虚拟目录中新建一个php页面test.php,代码入下:

在浏览器的地址栏中输入http://localhost/test.php见到php信息就可以

  1. php文件结构

    它的配置文件是php.ini

1.4 MySQL的安装

数据库在网站中的地位,用来保存数据。MySQL默认端口3306,

在任务管理器中可以查看,带d的是服务器端

如mysql.exe是客户端,mysqld.exe是服务器端。关闭了mysql client这个命令行只是关闭了客户端还有服务端在,所以从这里也能看出MySQL是CS架构,可以在我这台机上只启动服务器,你那台机子上启动客户端,就能远程访问了。

1.5 LAMP和WAMP

  • L:Linux 操作系统(开源),多用户操作系统《》 W:Windows操作系统。

  • A:Apache 开源

  • P:PHP 开源

  • M:MySQL 开源的数据库

LAMP组合

1.6集成环境的安装

可以安装WAMP.exe一套。

1.7更改虚拟目录

因为PHP的运行需要apache的支持,所以,php的目录要告知apache。在apache的配置文件中配置php虚拟目录的位置。

打开apache的配置文件

ctrl+f查找Documentroot,修改,如C:/web。

本机是DocumentRoot “D:\WorkSpace\PHP\Default”

配置文件是不区分大小写的

测试:

在浏览器地址栏中输入http://localhost/test.php发现,无法打开指定页面(此页面在c盘web文件夹下)

原因:没有给更改的目录设置访问权限

解决:在httpd.conf中,将指定文件夹的权限设定为allow from all

这时再次测试,成功。

到这时,就能发现虚拟目录和站点的区别了

站点:就是一个文件夹(里面放了网站素材)

虚拟目录:文件夹+权限

1.8更改首页

在apache的配置文件中查找DirectoryIndex这个指令是设置网站首页。

在DirectoryIndex指令后面添加test.php就可以了。

1.9更改监听端口

配置文件的Listen,进行修改或添加

浏览器请求的格式:

http://网址:端口号/php页面。

如果端口号是80,那么这个端口号可以省略

1.10DNS解析

DNS:Domain Name System

在互联网上唯一标识的一台计算机的是IP地址。但是IP地址不方便记忆,我们通过一个域名对应一个IP地址

客户端输入www.sina.com,会变为202.108.33. 60,也即是说会先请求最近的DNS服务器,将域名解析成IP地址,对这几年的DNS。最近的DNS解析服务就是本机·。

  1. 0.0.1:本机

本机的DNS解析数据库“C:\Windows\System32\drivers\etc\hosts

1.11虚拟主机的配置

一台主机(服务器)差不多1万,托管一年也差不多一万

一个apache支持多个网站,从浏览者的角度看起来,每个网站都是一个独立的主机,(实际上只有一个主机,一个apache),所以称为虚拟主机。

开启虚拟主机的配置:进入apache的conf目录下,进入httpd.conf文件

#Virtual hosts

Include conf/extra/httpd-vhosts.conf:把这行的注释符去掉就开启了虚拟主机

再找到conf目录下的extra目录进入,找到httpd-vhosts.conf文件,这就是虚拟主机的配置文件

1.12总结

站点-虚拟目录-虚拟主机的本质都是那个文件夹。

  1. 站点:

    配置文件中只有目录声明, DucumentRoot “C:/web2“

  2. 虚拟目录:

    除了有目录还有权限,

DocumentRoot :"C:/web2"



​	allow from all


  1. 虚拟主机

    除了以上还有网址。

    DocumentRoot :"C:/web2"
    ServerName  www.sohu.com
    	<Directory  "C:/web2">
    
    ​		allow from all
    
    	</Directory>
    

2.1回顾

  1. 静态网站和动态网站

    • 不支持数据交互的网站(.html htm)

      a. 优点:速度快(因为服务器不用执行,而是浏览器解析),最安全(服务器都不执行,黑客无法攻击)

      b.缺点:更改不方便

    • 支持数据交互的网站

      a. 优点:更改方便

      b. 缺点:效率和安全性都没有静态网站高

  2. 客户端和服务器端

    • 客户端:浏览器使用的计算机
    • 服务器端:存放网站代码的机器
  3. 端口和端口号

    • 端口就是服务运行的入口,类似于大楼的门
    • 端口号:门的门牌好, 范围是0-65535
  4. 前台和后台

    • 浏览器看到的界面
    • 管理员操作的界面
  5. 站点、虚拟目录、虚拟主机

    • 站点:存放网站内容的文件夹
    • 虚拟目录:有权限的文件夹
    • 虚拟主机:有权限的文件夹+域名+端口+其他一些配置
  6. 更改虚拟目录

    • DocumentRoot用来更改虚拟目录
    • 要注意更改文件夹的权限
  7. 更改首页

    • DirectoryIndex
  8. 更改监听器端口

    • Listen

      配置文件的指令不区分大小写

2.2PHP简介

PHP:Hypertext Preprocessor,中文名:超文本预处理器。是一种通用的开源脚本语言,运行在服务器端。

php底层使用c语言开发的,MySQL底层使用c++开发的

2.3PHP四种定界符

2.3.1 标准风格


    //php代码
?>

2.3.2 短标记风格

默认是不支持短标记风格,要在php的配置文件中(php.ini)中开启支持短标记,将short_open_tag值设置为on。重启服务器

[外链图片转存失败(img-dvaLeBsP-1562311878608)(C:\Users\Luckyrin\AppData\Roaming\Typora\typora-user-images\1561533337384.png)]


 	//php代码   
?>

2.3.4 asp风格

默认是不支持asp风格定界符,要在php.ini中开启,asp_tags的值设置为on

<%
    //php代码
%>

2.3.5 Script标记风格

<script language="php">
    //php代码
</script>

?>

PHP支持省略结束标记,PHP开始定界符后面一直到最后没有全部都是PHP代码的情况下可以省略PHP结束符。

2.4PHP执行原理

客户端想服务器发送一个请求,如果请求的是一个HTML页面,服务器直接将HTML 页面发送给客户端给浏览器解析,如果请求的是PHP页面,则服务器会运行PHP页面然后生成标准的HTML,将生成的HTML代码发送到客户端。

2.5PHP语法的特点

  1. php语句以分号结尾

  2. PHP的关键字不区分大小写(编程里要用的字为关键字,如if和IF都可以),但是变量名是区分大小写的。JavaScript的变量大小写也是区分的。

    其实除了sql和vb其他语言基本都区分大小写。

2.6 变量

变量是计算机内存中的一段空间

2.6.1变量的命名规则

必须以 开 头 , 开头, 不是变量名的组成部分,仅仅表示PHP的变量名从这里开始。除了$以外,字母、下划线开头,后面跟的是字母、数字、下划线。

2.6.2变量的赋值

用=来做赋值运算

变量可以传值也可以传地址,&,取址,

2.6.3 销毁变量

通过unset()来销毁变量。unset()销毁的是变量名。值是由PHP的垃圾回收机制销毁的。

2.6.4可变变量


 	$a='锄禾日当午;
    $b='a';//$b中存放的是变量名
    echo $$b;
 ?>

b 保 存 的 是 变 量 名 a , 所 以 b保存的是变量名a,所以 ba b 就 是 b就是 ba,最后输出$a的值

2.7常量

当一个值在脚本执行周期内不发生变化,就可以将值声明成常量,用define()关键字

常量名不能以$开头。

默认情况下,常量名是区分大小写的,可以通过define的第三个参数设置是否区分大小写。

Ture:不区分,FALSE:区分

define('name','李白',ture)echo Name;//还是能输出

常量不能重复定义。

2.8变量的数据类型

2.8.1标量的数据类型

类型 描述
整数类型 范围 − 2 31 -2^{31} 231~ 2 31 − 1 2^{31}-1 2311
浮点数 存放整数和小数
布尔型 Ture和FALSE
字符串型 双引号字符串和单引号字符串

2.8.2复合类型

类型 描述
数组 array
对象 object(以后再讲)

数组:计算机内存中一段连续的空间,通过下表来区分数组

  1. 数组的分类:索引数组和关联数组

    
    
        //索引数组:通过元素的位置做下标,默认从0开始,每次增长1,可以更改数组的起始下标。
     	$stu=arrray('tom','beerry','ketty','rose')   
        echo $stu[0],'br'
       	echo $stu[1],'br'
        //=>这个符号是数组的赋值号,把李白赋值给name
        //关联数组,通过字符串做下标,元素的值与字符串有某种关联
        $emp=array('name'=>'李白','sex'=>'男','age'=>22);
    	echo $emp[name],'
    '
    ; echo $emp[sex],'
    '
    ; echo $enp[age],'
    ; ?> 思考:请写出数组的下标 $stu=array(1=>'
    a','b','c','d'); print_r($stu);//输出结果是Array([1]=>a[2]=>b[3]=>c[4]=>d),这种应该叫关联数组吧 再思考 $stu=array('a',2=>'b','c',5=>'d'); print_r($stu);//输出Array([0]=>a[2]=>b[3]=>c[5]=>d) 再来 $stu=array(1=>'a',1=>'b',1=>'c','d'); print_r($stu);//输出Aray([1]=>c[2]=>d)
  2. 键值对

    数组的下标我们可以称为键,下标和对应的值称为“键值对”

2.8.3特殊类型

  1. resource(资源)

    PHP的外部数据称为资源类型

    如php要访问的mysql数据,或者text文本这种东西。

  2. NULL(无类型)

2.8.4字符串

​ 单引号字符串是真正的字符串,双引号字符串要将变量给替换。因为单引号字符串不需要运算,所以单引号字符串执行效率高些。

​ 变量如果在字符串的前面或中间,要用{}括起来,{和$符可以调换位置

2.9输出语句

  1. echo

    只能输出数字、字符串,对弈布尔型,TURE输出为1,FALSE输出为空

    可以一次输出多个参数,没有返回值。

  2. print

    和echo语句很类似

    一次只能输出一个参数

    输出成功会返回1,失败会返回0

  3. print_r()

    用来输出数组,输出的内容包括数组的键和值,不包括数据类型。

  4. var_dump()

    若传入参数变量,则输出变量的值和变量的类型。

    若传入参数为数组,则输出包括键、值和值的数据类型。

2.10php注释

单行注释:

//,#

多行注释:

/*

*/

2.11运算符

  1. 算术运算符

    一元运算符 二元运算符
    -(负号) +
    ++自增 -
    –自减 *
    /
    %

    注意:

    • +号在js中可以做数字的相加,也可以做字符串的相加(字符串相连),但在php中,+只能做数字运算。
    
        echo '10'+'20'//结果是30,在php中,+只能做数字运算
        echo '10aa'+'20bb'//结果还是30,
        echo 'aa'+'bb'//结果是0
    ?>
    
    • 取模就是取余数
  2. 比较运算符

    运算符 描述
    > 大于
    >= 大于等于
    < 小于
    <= 小于等于
    == 等于
    != 不等于
    === 全等
    !== 不全等
    • =的区别,==只比较值,===比较值和数据类型

      
          $a=10;
      	$b='10';
          if($a==$b) {
              echo '相等'}else {
              echo '不相等';
          }
      	echo '
      '
      ; if($a===$b) { echo '全等'}else { echo '不全等'; } ?> //输出 相等 不全等 $a='abc'; $b=0; if($a==$b) { echo '相等'}else { echo '不相等'; } ?> //输出 相等(把字符串转为0再比较,这个在js中是不等的) //所以在php中要做相等的话,建议用===(全等符)
  3. 逻辑运算符

    运算符 描述
    && 与:并且
    || 或:或者
    ! 非:取反

    逻辑运算符是用来连接比较运算符的。

  4. 字符串连接符

    在PHP中,字符串连接符是点(.);

    
        $a=10;
    	$b=20;
    	echo $a.$b;//输出1020,字符串连接
    ?>
    
  5. 赋值运算符

    运算符 描述
    = 赋值
    += a+=b a=a+b
    -= a-=b a=a-b
    *= a*=b a=a * b
    /= a/=b a=a/b
    %= a%=b a=a%b
    .= a.=b a=a.b(a连上b)

    6.三元运算符

    表达式?值1:值2

    如果表达式为真,返回值1,否则返回值2。

    isset()用来判定变量是否赋值,并且不为NULL

    is_numeric()用来判定是否是数字或数字字符串,如果是数字或数字字符串返回TRUE,否则返回false

    将数字字符串转成数字类型:$num+=0(因为表单提交过来都是字符串类型)

    is_int()用来判定是否是整型(不是判断整数,若是数字字符串,会返回false)

    2.12多分支

    if(条件)

    {

    }elseif {

    }else {

    }

    js中else和if中间有空格,php中官方推荐无空格,但有空格输出也一样,只是原理有点不一样

2.12多路选择

switch(表达式){
    case 常量:
        代码;
        [break;]
    case 常量:
        代码;
        [break;]
    default:
        代码;
}

2.13循环语句

循环的三要素是

初始值,条件,增量

2.13.1 for循环

语法:

for(初始值;条件;增量) {

​ //循环体

}

for($i=1;$i<=10;$i++) {
    echo "{$i}:锄禾日当午
"
}

2.13.2 while

while条件成立就执行,条件不成立就不执行。

语法:

while(条件)

{

​ //循环体(包括增量)

}

2.13.3 do-while

语法:

do

{

​ //循环体

}while(条件)

while和do-while的区别

1.while是先判断再执行,do-while是先执行再判断

2.while条件不成立就不执行,do-while至少执行一次。

简述for、while、do-while他们使用的环境

答:这三个循环是可以相通的;如果明确知道循环多少次,最好选for循环;

如果不知道循环多少次,只是循环到条件不成立为止,最好选while或do-while

想先判断在执行选while,想先执行再判断选do-while

2.13.4 foreach

这个循环专门用来遍历数组。

语法一:

foreach(数组 as 变量)

比如


    $stu=array('tom','berry','ketty','rose');
        foreach($stu as $v)
        {
            echo $v.'
'
; } ?> /*输出 tom berry ketty rose*/

语法二:

foreach (数组 as $key=>$value)
{
    //循环体
}
//比如

    $stu=array('tom','berry','ketty','rose');
        foreach($stu as $key=>$value)
        {
            echo "{$key}-{$value}
"
; } ?> /*输出 0-tom 1-berry 2-ketty 3-rose */ //再比如 $stu=array('name'=>'李白','sex'=>'男','age'=>20); foreach($stu as $k=>$v) { echo "{$k}=>{$v}
"
; } ?> /*输出 name=>李白 sex=>男 age=>20 */

例题从1加到100

//for循环

    $sum=0
    for($i=1;i<=100;i++){
     	$sum+=$i;   
    }  
	echo "for:从1加到100的和是:{$sum}
"
; ?> //while循环 $sum=0; $i=1; while($i<=100) { $sum+=$i; $i++; } echo "while:从1加到100的和是:{$sum}
"
; ?>

2.14函数

语法:

function 函数名(参数)

{

​ //函数体

​ [return]//可以不写

}


	function cal($num1,$num2)
{
    $num=$num1+$num2;
    echo "{$num1}{$num2}的和是{$num}
"
; } cal(10,20); ?>

return

作用:

  1. 终止函数的执行(终止循环用break)

2.15 数组分类

按照键来分:分为索引数组和关联数组。

按结构来分:一维数组和多维数组

二维数组可以看成一个数组里放了一个数组

//获取索引数组

	$stu=array(
		array('tom','bettty','ketty'),
    array('李白','杜甫','白居易');
	);
    echo $stu[0][0],'
'
; echo $stu[1][2]; ?> //获取关联数组 $stu=array( array('name'=>'张三','sex'=>'男','age'=>20) array('name'=>'sle,'sex'=>'','age'=>18); ); echo $stu[0]['name'],'<br>'; echo $stu[1]['age']; ?>

2.16编码乱码问题

中文会乱码,原因是:浏览器不知道这个页面的字符编码

解决一:

在页面的最上面添加一个meta,在meta中设置字符编码



解决二:

设置PHP的头信息。

header(‘Content-Type:text/html;charset=utf-8’);


    header('Content-Type:text/html;charset=utf-8');
	echo '锄禾日当午';
?>

综合项目

[外链图片转存失败(img-7JW3GMlF-1562311878614)(C:\Users\Luckyrin\AppData\Roaming\Typora\typora-user-images\1561691550552.png)]

在项目中,PHP充当MySQL数据库的客户端,通过PHP连接数据库并且操作数据库。

1.PHP开启MySQL扩展

PHP本身是一个框架,它的功能是有PHP扩展而来的,要通过PHP连接数据库,必须开启连接mysql的功能,也就是PHP的MySQL扩展。

在php.ini中,将extension=php_mysql.dll前面的分号去掉,重启服务器。

[外链图片转存失败(img-7aoqBPDO-1562311878616)(C:\Users\Luckyrin\AppData\Roaming\Typora\typora-user-images\1561692245589.png)]

wamp集成环境是默认开启的。

1.1创建数据库

通过phpMyAdmin新建一个data数据库,并将准备好的sql文件导入到数据库中,字符集用

utf8-general-ci

1.2连接数据库

查阅帮助文档,php_manual_zh.chm,进入搜索mysql,如果开启了mysql扩展,就可以使用msysql打头的这些函数了。

通过mysql_connect(数据库地址,用户名,密码),返回一个数据库的连接对象(resource类型)


    //连接数据库
    $link=mysql_connect('localhost','root','')if($link)//在php中有值为真,Null值为假
    {
        echo '连接成功';
    }else {
        echo '连接失败'}
?>

//通过or语句可简化上面的代码

    $link=mysql_connect('localhost','root','aa') or die('数据库连接失败')?>

继续优化上面代码,如果连接失败,会显示报错信息,这时候可能会暴露敏感信息。

通过@可屏蔽错误信息

$link=@mysql_connect(‘localhost’,‘root’,‘aa’) or die(‘数据库连接失败’);

[外链图片转存失败(img-x9RVhbT3-1562311878617)(C:\Users\Luckyrin\AppData\Roaming\Typora\typora-user-images\1561702169355.png)]

1.3终止执行

exit()和die()都可以,里面都可以放一些参数,比如终止时输出一段话

1.4选择数据库、查询数据库

方法一:

通过执行“use 数据库名”来选择数据库

mysql_query()函数用于执行sql语句

mysql_query(‘use data’)


    //1.连接数据库
    $link=mysql_connect('localhost','root','aa') or die('数据库连接失败')//2.选择数据库
    mysql_query('use data') or die('数据库选择失败')//3.获取products表的数据
    $rs=mysql_query('select * from products');
	var_dump($rs);//输出resource(4)oftype(mysql result),这种资源类型是不能用foreach遍历的
?>

方法二:mysql_select_db(‘data’)

1.5取出结果集中数据(mysql_fetch_row)

开始匹配,指针指向第一条记录,取出资源中的当前记录,匹配成索引数组,指针下移一条

缺点:数据库字段的个数发生了变化,会影响程序中数组的索引编号


    //1.连接数据库
    $link=mysql_connect('localhost','root','aa') or die('数据库连接失败')//2.选择数据库
    mysql_query('use data') or die('数据库选择失败')//3.设置MySQL客户端的字符编码
    mysql_query('set names utf8');
    //4.获取products表的数据
    $rs=mysql_query('select * from products');
	var_dump($rs);//输出resource(4)oftype(mysql result),这种资源类型是不能用foreach遍历的
	//5.循环输出
	<table>
        <tr>
        <th>编号</th>
        <th>商品名称</th>
        <th>规格</th>
        <th>价格</th>
        </tr>
        
        while($rows=mysql_fetch_row($rs))
        {
            echo '';
            echo ''.$rows[0].'';
            echo ''.$rows[1].'';
            echo ''.$rows[2].'';
            echo ''.$rows[3].'';
            echo '';
        }
    </table>
?>

1.6取出结果集中数据(mysql_fetch_assoc)

开始匹配,指针指向第一条记录,取出资源中的当前记录,匹配成关联数组,指针下移一条

数组的键和数据表的字段名相关联。

 
        while($rows=mysql_fetch_assoc($rs))
        {
            echo '';
            echo ''.$rows['proID'].'';
            echo ''.$rows['proname'].'';
            echo ''.$rows['proguige'].'';
            echo ''.$rows['proprice'].'';
            echo '';
        }//这里字段区分大小写,因为这里已经不是数据库了而是PHP中的关联数组。

//输出resource(4)oftype(mysql result),这种资源类型是不能用foreach遍历的
//5.循环输出







编号 商品名称 规格 价格

    while($rows=mysql_fetch_row($rs))
    {
        echo '';
        echo ''.$rows[0].'';
        echo ''.$rows[1].'';
        echo ''.$rows[2].'';
        echo ''.$rows[3].'';
        echo '';
    }

?>


## 1.6取出结果集中数据(mysql_fetch_assoc)

开始匹配,指针指向第一条记录,取出资源中的当前记录,匹配成关联数组,指针下移一条

数组的键和数据表的字段名相关联。

~~~php
 
        while($rows=mysql_fetch_assoc($rs))
        {
            echo '';
            echo ''.$rows['proID'].'';
            echo ''.$rows['proname'].'';
            echo ''.$rows['proguige'].'';
            echo ''.$rows['proprice'].'';
            echo '';
        }//这里字段区分大小写,因为这里已经不是数据库了而是PHP中的关联数组。

你可能感兴趣的:(PHP基础学习笔记)