Web应用安全技术原理与实践 课件 第3章 Web服务端原理与编程_第1页
Web应用安全技术原理与实践 课件 第3章 Web服务端原理与编程_第2页
Web应用安全技术原理与实践 课件 第3章 Web服务端原理与编程_第3页
Web应用安全技术原理与实践 课件 第3章 Web服务端原理与编程_第4页
Web应用安全技术原理与实践 课件 第3章 Web服务端原理与编程_第5页
已阅读5页,还剩69页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Web应用安全第三章Web服务器端原理与编程本讲要求21理解Web服务器的工作原理2掌握PHP语言基础3掌握PHP中的文件和目录操作4掌握PHP中的数组及应用5掌握PHP中的字符串6掌握PHP中的代码重用和函数7掌握PHP+MySQL编程3Web服务器工作流程Web服务器:向发出请求的浏览器提供文档的程序/test.php/test.phpWeb服务器原理缺省主页:index.html、index.php、index.jsp、......从哪里搜索?-根目录Web服务器配置文件:httpd.conf4PHP语言基础基本语法以php为文件后缀PHP开始标志:<?phpPHP结束标志:?>每一条语句以分号(“;”)表示语句结束单行注释,//或#块代码注释,/*注释*/<?php//开始标志//单行注释/*代码块注释,第一行

代码块注释,第二行*/echo"HelloWeb!!";//结束标志?>在Web服务器上执行请求对应的PHP文件/test.php5PHP语言基础PHP语言中的基本输出常用输出语句或函数:echo、print、printf、print_recho"HelloWeb!!<br>","Otherstring!!<br>";print("Print!<br>");printf("num=%d,%s<br>",5,"printf!");print_r(array(1,2,3,4));6PHP语言基础PHP语言中的基本输入GET输入/POST输入<!DOCTYPEhtml><html><head><metacharset="utf-8"></head><body><h2>欢迎访问哈哈银行</h2><formaction="t3.php"method="get"><label>用户名:</label><inputtype="text"name="user"size=30/><br><label>密__码:</label><inputtype="password"name="pass"size=30/><br><inputtype="submit"value="登录系统"/></form></body></html>7<?php$user=$_GET['user'];//$_POST['user'];

$_REQUEST['user'];$pass=$_GET['pass'];//

$_POST['pass'];$_REQUEST[‘pass'];if($user=="alice"&&$pass=="123456"){

print("欢迎您,Alice!!");}else{

print("用户名或密码错误!");}?>PHP语言基础PHP语言中的基本输入$_GET/$_POST/$_REQUESTt3.php,练习体会5分钟8PHP语言基础在HTML中嵌入PHP代码<!DOCTYPEhtml><html><head><title>HTML中嵌入PHP代码</title><metacharset="utf-8"></head><body><h1>HTML中嵌入PHP代码</h1><p>HTML中的一段文字</p><?phpprint("<p>PHP输出的一段文字</p>");?></body></html>搜索PHP代码的开始标志“<?php”和结束标志“?>”,对于在开始标志和结束标志之外的文本内容,则直接输出友情提醒:文件名要以PHP为后缀,否则PHP代码不会执行/php/t4.php/php/t4.html在HTML中添加表单?9PHP语言基础数据类型布尔类型(boolean或bool):TRUE或FALSE整型(integer或int):十进制、二进制、十六进制等,如$val=10浮点型(float):如$val=3.1415926字符串:如abc,后面将详细介绍数组(array):如$a=array(1,2),后面详细介绍对象(object):自学内容资源类型(resource):如打开文件句柄等NULL:表示变量没有值,唯一的值就是NULLCallback/Callable类型:回调类型10PHP语言基础常量和变量define("MAX","1024");echoMAX;美元符号“$”开始后面跟变量名变量名由字母或者下划线开头,后面跟上任意数量的字母,数字,或者下划线有效变量名:$user、$pass无效变量名:$1234、$*a常量11PHP语言基础常量和变量PHP是弱类型语言,变量没有固定的数据类型,使用前不需要定义,根据变量值确定变量类型$var=NULL;$type=gettype($var);print("变量\$var类型为:".$type."<br>");$var=100;$type=gettype($var);print("变量\$var类型为:".$type."<br>");$var="abc";$type=gettype($var);print("变量\$var类型为:".$type."<br>");$var=array(1,2,3,4,5);$type=gettype($var);print("变量\$var类型为:".$type);12PHP语言基础常量和变量变量作用域局部变量局部变量就是在函数内部定义,只能在函数内部使用的变量functionfunc(){echo"func";echo$var;}$var="abcd";echo"main<br>";echo$var."<br>";func();13PHP语言基础常量和变量变量作用域—全局变量在本函数外所定义,能在本函数中使用变量,方法有:global关键字和超级全局变量$GLOBALSfunctionfunc(){

global$vara;echo"func<br>";echo$vara."<br>";echo$GLOBALS['varb'];}$vara="abcd";$varb=1234;func();14PHP语言基础常量和变量变量作用域—超级全局变量PHP中的一类特殊的全局变量,在PHP代码的任何位置都可以访问这些变量变量名备注$_GET通过URL参数(HTTP协议的GET方法)传递给当前脚本的变量的数组$_POST通过HTTP协议的POST方法传递给当前脚本的变量的数组。$_COOKIE通过HTTPCookies方式传递给当前脚本的变量的数组。$_REQUEST默认情况下包含了$_GET,$_POST和$_COOKIE的数组。$_FILES文件上传有关的变量的数组,如上传文件名、文件临时存放位置等。$_SERVER由Web服务器提供的关于HTTP头(如HOST头、HTTP_REFERER头等)、客户端相关信息(如REMOTE_ADDR等)、服务器相关信息(如SERVER_ADDR)、脚本相关信息(如PHP_SELF)等的数组。$_ENV通过环境方式传递给当前脚本的变量的数组,如运行脚本的用户等。特别提醒,需要修改php.ini的缺省配置项目variables_order="EGPCS",否则$_ENV内容为空。$_SESSION当前脚本可用会话变量的数组。$GLOBALS包含全部变量的全局组合数组,变量的名字就是数组的键。15PHP语言基础常量和变量测试和设置变量类型获取或设置变量类型:gettype函数/settype函数$var="1234";$type=gettype($var);print("Value:".$var.",Type:".$type."<br>");settype($var,"int");$type=gettype($var);print("Value:".$var.",Type:".$type);数据转换规则?"123abc"=>int/bool"abc123"=>int/bool123=>string/booltrue/false=>string/int16PHP语言基础常量和变量测试变量状态函数isset:测试变量是否存在或是否为空函数empty:变量是否存在或变量值是否为“”、0、“0”、NULL、、FALSE、空数组、变量未赋值函数unset:销毁一个变量$b=0;if(isset($a))print("Varible\$aissetted<br>");elseprint("Varible\$aisnotsetted<br>");if(empty($a))print("Varible\$aisempty<br>");elseprint("Varible\$aisnotempty<br>");if(isset($b))print("Varible\$bissetted<br>");elseprint("Varible\$bisnotsetted<br>");if(empty($b))print("Varible\$bisempty<br>");elseprint("Varible\$bisnotempty<br>");unset($b);if(isset($b))print("Varible\$bissetted<br>");elseprint("Varible\$bisnotsetted<br>");if(empty($b))print("Varible\$bisempty<br>");elseprint("Varible\$bisnotempty<br>");17PHP语言基础操作符算术操作符+(加)、-(减)、*(乘)、/(除)、%(取余)字符串连接符.赋值操作符=、复合赋值+=、递增++和递减--、引用操作符&引用变量都指向同一内存地址$a=5;$b=&$a;$b=9;echo$a;//返回9$a=$b."abc";18PHP语言基础操作符比较操作符操作符名称使用方法备注==等于$a==$b比较时会进行类型转换===恒等$a===$b变量值都类型都相同!=不等$a!=$b变量值不相等!==不恒等$a!==$b变量值或类型不相同<>

不等$a<>$b变量值不相等<

小于$a<$b

>

大于$a>$b

<=小于等于$a<=$b

>=大于等于$a>=$b

注意等于和恒等的区别19PHP语言基础操作符逻辑操作符操作符名称使用方法备注!NOT$a如果$a是false,则返回true;如果$a是true,则返回false。&&AND$a&&$b如果$a和$b都为true,则结果为true,否则为false。||OR$a||$b如果$a和$b都为true,或者有一个为true,则返回true;否则返回false。andAND$aand$b与&&相同,但优先级较低。orOR$aor$b与||相同,但优先级较低。xorXOR$axor$b如果$a和$b都为true或false,则返回true;否则返回false。如果操作数不是布尔类型,结果又如何?20PHP语言基础操作符位操作符操作符名称使用方法备注&按位与$a&$b将$a和$b的每一位进行与操作所得到的结果,与操作规则:1&1=1,1&0=0,0&0=0|按位或$a|$b将$a和$b的每一位进行或操作所得到的结果,或操作规则:1|1=1,1|0=1,0|0=0~按位非~$a将$a的每一位进行非操作所得到的结果^按位异或$a^$b将$a和$b的每一位进行异或操作所得到的结果,异或操作规则:1^1=0,1^0=1,0^0=0<<

左移位$a<<$b将$a左移$b位>>

右移位$a>>$b将$a右移$b位21PHP语言基础操作符三元操作符condition?val1iftrue:val2iffalse$a=true;$c=$a?"abc":123;//"abc"print($c);错误抑制符错误抑制操作符@可以放置在一个PHP表达式之前,该表达式可能产生的任何错误信息都被忽略掉$a=0;$b=@(50/$a);//除零错误控制语句条件分支语句-if语句条件分支语句-switch语句循环语句-for语句循环语句-while语句/dowhile语句循环语句-break和continue语句22例子:将1-100中满足以下条件的整数打印出来:5的倍数;不是3的倍数;打印的整数个数不超过6个$count=0;for($i=1;$i<=100;$i++){

if($i%3==0)continue;

if($i%5==0){

print($i."--");

$count++;

if($count>=6)break;

}}PHP语言基础控制语句23文件操作文件打开和关闭fopen函数/fclose函数fopen(string$filename,string$mode[,bool$use_include_path=false[,resource$context]]):resource模式名称含义r只读只读模式打开文件,并将文件句柄指向文件。r+读写读写模式打开文件,并将文件句柄指向文件。w写写模式打开文件,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建文件。w+读写读写模式打开文件,将文件指针指向文件头并将文件大小截为零,只能对文件进行写操作。如果文件不存在则尝试创建文件。a追加写模式打开文件,将文件指针指向文件尾。如果文件不存在则尝试创建文件。a+追加读写模式打开文件,将文件指针指向文件尾。如果文件不存在则尝试创建文件。x写创建文件并以写模式打开文件,将文件指针指向文件头。如果文件已存在,则fopen()调用失败并返回FALSE,并生成一条E_WARNING级别的错误信息。如果文件不存在则尝试创建之。x+读写只是以读写模式打开文件,其他和x模式一样。c写如果文件不存在,则创建文件并以写模式打开;如果文件存在,则以写模式打开文件并将文件指针指向文件头。c+读写只是以读写模式打开文件,其他和c模式一样。24文件操作文件打开和关闭fopen函数示例25文件操作文件读取fread函数$filename=“c:/tmp/a1.txt";$fd=fopen($filename,"r");$con=fread($fd,1024);print($con);fgets函数/fgetss函数fgets函数用于从文件中读取一行的内容,fgetss函数也是用于从文件中读取一行的内容,不过会过滤任何HTML和PHP的标签$filename=“c:/tmp/a2.txt";$fd=fopen($filename,"r");print("<xmp>");while($con=fgets($fd)){print($con);}fclose($fd);print("\r\n");$fd=fopen($filename,"r");while($con=@fgetss($fd)){print($con);}print("</xmp>");26文件操作文件读取readfile函数读取文件并写入到输出缓冲$filename="c:/tmp/a2.txt";print("<xmp>");$ret=readfile($filename);print("</xmp>");print($ret);27文件操作文件读取file函数把整个文件读入一个数组中,一个元素对应文件的一行$filename="c:/tmp/a5.txt";$con=file($filename);print_r($con);file_get_contents函数将整个文件读入一个字符串$filename="c:/tmp/a5.txt";$con=file_get_contents($filename);print($con);28文件操作文件写fwrite/fputs函数将字符串写入文件,fputs函数是fwrite函数的别名$filename="c:/tmp/a6.txt";$str="Testfile......";$fd=fopen($filename,'w');$ret=fwrite($fd,$str);fclose($fd);打开文件c:/tmp/a6.txt检查结果file_put_contents函数将数据(如字符串或数组等)写入文件$filename="c:/tmp/a7.txt";$a=array("1"=>"a","2"=>"b");$ret=file_put_contents($filename,$a);打开文件c:/tmp/a7.txt检查结果如果文件不存在,结果如何?如果原来文件存在,并且有内容,结果又如何?文件的打开方式,对结果有什么影响?如以“a”方式打开。29文件操作目录操作相关dirname函数:获取一个路径名的目录部分basename函数:返回路径中的文件名部分$path="C:/wamp64/www/test/a.txt";print("文件路径:".$path."<br>");$dir=dirname($path);print("目录名:".$dir."<br>");$filename=basename($path);print("文件名:".$filename."<br>");30文件操作其他文件和目录操作file_exists函数:查看文件或目录是否存在filesize函数:确定文件大小unlink函数:删除文件feof函数:判断是否文件结尾is_file函数:判断路径是否是文件is_dir函数:判断路径是否是目录$path="C:/wamp64/www/test";if(is_dir($path))print("$path是目录!<br>");elseprint("$path不是目录!<br>");$file="C:/wamp64/www/test/a.txt";if(is_file($file))print("$file是文件!<br>");elseprint("$file不是文件!<br>");31数组数组结构数组是可以存储一组或一系列数值的变量;每一个元素都存储一组或一系列数值的变量。由一个关键字(key)和一个值(value)组成,关键字也被称为索引。PHP数组数字索引$a=array(0=>'a',1=>'b',2=>'c');$b=array('a','b','c');print_r($a);//Array([0]=>a[1]=>b[2]=>c)print_r($b);//Array([0]=>a[1]=>b[2]=>c)PHP数组字符串索引$c=array(‘alice’=>‘student’,‘bob’=>‘worker’);32数组数组创建array函数以及数组操作符[]来创建数组可以带上关键字(key),如果没有关键字,则自动添加数字关键字$a=array(3,9,5,7,2);$b=["a","b","c","d","e"];$c=array("aclie"=>"girl","bob"=>"boy",5=>"time");print_r($a);print("<br>");print_r($b);print("<br>");print_r($c);33数组数组创建通过枚举的方式组个创建数组的元素//创建数组$a$a[]=3;$a[]=9;$a[]=5;$a[]=7;$a[]=2;//创建数组$b$b[0]="a";$b[1]="b";$b[2]="c";$b[3]="d";$b[4]="e";//创建数组$c$c["alice"]="girl";$c["bob"]="boy";$c[]="time";print_r($a);print("<br>");print_r($b);print("<br>");print_r($c);34数组数组访问数字索引数组访问字符串索引数组访问混合索引数组访问$a=array(0=>'a',1=>'b',2=>'c');$b=array('a','b','c');print($a[0]);print($b{1});//PHP7.4不推荐使用,PHP8不再支持$c=array("aclie"=>"girl","bob"=>"boy",5=>"time");print($c['alice']);//girl$c=array("a"=>"alice","b"=>"bob",0=>"other","zero");print($c['a']);//aliceprint($c[0]);//otherprint($c[1]);//zeroprint($c[‘0’]);输出什么?35数组访问foreach语句遍历数组$a=array(3,9,5,7);foreach($aas$value){print($value.",");}foreach(数组as$value){语句块}方式一foreach(数组as$key=>$value){语句块}方式二$a=array(3=>"apple",9=>"balana",5=>"peach",7=>"orange");foreach($aas$key=>$value){print($key."=>".$value.",");}数组36数组数组操作计算数组元素个数$a=array(1,2,3,4,5);$num=count($a);//sizeofprint($num);//5数组首元素添加和删除$a=array('a','b','c','d');$b=array_shift($a);print($b);//aprint_r($a);//array('b','c','d')$c=array_unshift($a,$b);print($c);//4print_r($a);//array('a','b','c','d')37数组数组操作针对数组的入栈和出栈操作<?php$a=array(1,2,3,4,5);$b=6;array_push($a,$b);//$a[]=$b;print_r($a);//array(1,2,3,4,5,6)$c=array_pop($a);print($c);//6print_r($a);//array(1,2,3,4,5)?>38数组数组操作数组排序函数sort根据元素值进行排序,函数asort根据元素值排序并保留关键字,函数ksort根据关键字进行排序。$a=array("carl"=>4,"alice"=>3,"bob"=>1);$b=$a;$c=$a;sort($a);print_r($a);//array(1,3,4)asort($b);print_r($b);//array("bob"=>1,"alice"=>3,"carl"=>4)ksort($c);print_r($c);//array("alice"=>3,"bob"=>1,"carl"=>4)39数组多维数组EnglishWeb201908001Alice201908001Alice201908002Bob201908004Lisi201908003Carl201908005Wangwu$classes=array("English"=>array("201908001"=>"Alice","201908002"=>"Bob","201908003"=>"Carl"),"Web"=>array("201908001"=>“Alice","201908004"=>"Lisi","201908005"=>"Wangwu",));print_r($class);$classes=array("English"=>array(

array("201908001","Alice"),

array("201908002","Bob"),array("201908003","Carl")),"Web"=>array(array("201908001",“Alice"),array("201908004","Lisi"),array("201908005","Wangwu")));print_r($class);数组元素的值本身也可以是数组,这样就形成了多维数组学生选课情况40字符串字符串(string)表示形式PHP中的字符串是由一系列字符组成,它不支持Unicode,有4种表示形式:单引号、双引号、Heredoc结构、Nowdoc结构$a='a\'b\\c';$b="1234$a6";$c='1234$a6';//Heredoc结构$d=<<<EOFxyz999$aabcEOF;//Nowdoc结构$e=<<<'END'888ok$a123END;print($a."<br>");print($b."<br>");print($c."<br>");print($d."<br>");print($e."<br>");41字符串字符串连接和分割explode函数:将一个字符串分割成几个子字符串$str="abc@123@xyz@com";$a=explode("@",$str);print_r($a);print("<br>");$a=explode("@",$str,3);print_r($a);如何分词?如:Thisisatest42字符串字符串连接和分割implode/join函数:将字符串连接起来$strarray=array(1=>"abc","b"=>"123","xyz","com");$str1=implode("-*-",$strarray);print($str1."<br>");$str2=implode($strarray);print($str2."<br>");$str3=implode("",$strarray);print($str3."<br>");43字符串字符串连接和分割substr函数:获取一个字符串的子字符串$str='0123456';$str1=substr($str,1);//从第1号字符开始,123456print($str1."<br>");$str2=substr($str,2,4);//从第1号开始取4个字符,2345print($str2."<br>");$str3=substr($str,-3);//从尾部起第3个字符开始,456print($str3."<br>");$str4=substr($str,1,-2);//从第1号开始,到尾部,忽略尾部2个字符,1234print($str4."<br>");函数的参数个数可变44字符串字符串比较strcmp函数:比较两个字符串$str1="a2";$str2="a10";$cmp1=strcmp($str1,$str2);print($cmp1);//1$cmp2=strnatcmp($str1,$str2);print($cmp2);//-1strcasecmp函数:比较两个字符串,并且不区分大小写strnatcmp函数:以人类习惯对数字型字符串进行排序的比较算法,这就是“自然顺序”,如a2<a1045字符串字符串匹配和替换strstr/strchr函数:字符串中查找另一个字符串,如果找到,则返回匹配字符串之前或之后子字符串$email="zhangsan@";print("Email:".$email."<br>");$domain=strstr($email,'@');print("Domain:{$domain}<br>");$name=strstr($email,'@',true);print("Name:".$name."<br>");46字符串字符串匹配和替换strpos函数:字符串中搜索子字符串的首次位置$str="SSSabc123abcxyzabc";$needle="abc";$offset=strpos($str,$needle);//正向搜索,3print($offset."--");$offset=strpos($str,$needle,5);//从第5号字符开始搜索,9print($offset."--");$offset=strpos($str,$needle,-4);//从倒数第4号字符开始搜索,15print($offset."--");47字符串字符串匹配和替换str_replace函数:查找并替换子字符串$str="abc123abcxyzabc";$needle="abc";$new_needle="666";$count=0;$new_str=str_replace($needle,$new_needle,$str,$count);print($str."<br>");print($new_str."<br>");print($count);多项搜索和替换?使用数组?48代码重用和函数文件包含文件包含可以引用其他文件中的代码,很方便实现代码的重用include语句:包含并运行指定文件print("Hello,include.php<br>");include.php文件内容test.php文件内容include('include.php');include('include.php');49代码重用和函数文件包含include_once语句include_once语句与include语句类似,唯一的区别就是如果该文件已经被包含过,则不会再次包含require语句require语句和include语句类似,唯一的区别就是如果语句执行失败,require语句会产生一个错误并终止程序运行,而include语句只会产生一个警告,并且程序不会终止运行require_once语句require_once语句与require语句类似,唯一的区别就是如果该文件已经被包含过,则不会再次包含体会一下效果?50代码重用和函数自定义函数functiontest(参数){

函数代码块;}基本格式参数有两种传递方式,一是值传递,二是引用传递(参数前有“&”符号)函数中的return语句,将从函数调用中返回到调用函数,return语句有两个基本的返回形式,一种是直接返回,另一种是带返回值返回例子:一个计算自然数N的阶乘N!的函数51自定义函数代码重用和函数自定义函数示例functionfactorial($n,&$total){//值传递、引用传递$total=1;if($n<0)return0;//直接返回或带值返回for($i=1;$i<=$n;$i++){

$total=$total*$i;}return1;}$n=0;if(isset($_GET['n']))$n=(int)$_GET['n'];$ret=factorial($n,$total);if($ret)print($n."!=".$total);elseprint("Invalidinput");http:///php/t28.php?n=xx52内置函数代码重用和函数匿名函数匿名函数通常没有函数名字,一般应用于回调函数内置函数是指PHP解释器自带的,不需要定义可以直接调用的函数,如输出函数、数组操作函数、文件操作函数、字符串操作函数等$a=array(1,2,3,4,5);array_walk($a,function($val){print($val."-");});53动态函数代码重用和函数函数名可以是一个变量functionfuncA(){print("functionA");}functionfuncB(){print("functionB");}$func="funcA";//函数名有变量确定if(isset($_GET['func']))$func=$_GET['func'];$func();//动态函数调用http:///php/t29.php?func=funcX54PHP使用MySQL数据库关系型数据库是常用的数据库类型,MySQL是一种关系型数据库系统。基本概念数据表所谓的关系就是数据表,由行和列组成,其中行表示不同的数据记录,列表示数据属性idnamepassword201909001zhangsanzs123456201909002lisils654321201909003wangwu123456ww201909004zhaoliu654321zlEnglish成绩表Networks成绩表idgradeidgrade201909001782019090014520190900266201909002892019090039020190900376201909004532019090049755PHP使用MySQL数据库基本概念列数据表中的每一列都有一个唯一的名字(称为列名、字段或属性)、数据类型行数据表的每一行表示数据表的一条数据记录对于数据表中的每一行数据记录,必须能够区分开,以确定数据记录的唯一性数据记录的唯一性一般使用一个特定的列,并使得该列所有的值都不相同的方式来实现,该列就称为“键”或“主键”值每一行对应每一列的单个数据56PHP使用MySQL数据库SQL语句基础StructedQueryLanguage(结构化查询语句,SQL),关系型数据库管理系统的标准语言,MySQL数据库系统支持大部分的标准SQL语句启动MySQL命令行控制端C:\>mysql–hhostname–uusername-p57PHP使用MySQL数据库SQL语句基础创建数据库查看数据库删除数据库使用数据库58PHP使用MySQL数据库SQL语句基础创建数据表数字类型:包括整数(int或integer)、浮点数(float)等字符串类型:比较常用的是普通字符串,包括char(size)和varchar(size)日期和时间类型:比较常用的有日期类型(date)、时间类型(time)及日期时间类型(datetime)主键(primarykey)不能为空(notnull)59SQL语句基础查看数据表PHP使用MySQL数据库删除数据表在数据表中插入数据60SQL语句基础查询数据PHP使用MySQL数据库selectcolumnsfromtablenamewhereconditionslimitm,norderbyicoulums是指要查询的列名,如果选择所有的列,则使用“*”表示tablename表示要查询的数据表名conditions表示查询的条件limitm,n表示在获取结果时,从m条记录开始(MySQL的记录是从0开始计数),获取n条记录信息orderbyi表示按照第i列进行排序,也可以直接使用列名查询数据是数据库操作中最常用,也是最为复杂的操作,这里只是给出了比较常用的一些场景61SQL语句基础查询数据PHP使用MySQL数据库查询表中所有的记录62SQL语句基础查询数据PHP使用MySQL数据库根据条件查询表中的记录63SQL语句基础查询数据PHP使用MySQL数据库根据条件查询表中的记录64SQL语句基础查询数据PHP使用MySQL数据库限制获取的记录信息65SQL语句基础查询数据PHP使用MySQL数据库对获取的记录信息排序66SQL语句基础修改数据表中的数据PHP使用MySQL数据库updatetablenamesetcol1=val1[,col2=val2,……];67SQL语句基础导入SQL语句文件PHP使用MySQL数据库68PHP使用MySQL数据库PHP与MySQL数据库编程一般步骤第一步:连接数据库系统并选择数据库第二步:构造SQL语句第三步:执行SQL语句第四步:获取SQL语句执行结果数据库访问接口mysqli接口在php.ini配置文件中,将“extension=mysqli”前的注释符号(分号“;”)去掉,重新启动PDO接口即在php.ini配置文件中,将“extension=php_pdo.dll”和“extension=php_pdo_mysql.dll”注释符号去掉,重新启动ODBC接口需要ODBC连接MySQL数据库的驱动程序(MySQL官网可以下载)69PHP使用MySQL数据库PHP与MySQL数据库编程mysqli接口连接数据库系统mysqli_connect(string$host,string$username,string$password[,string$dbname,int$port,string$socket]):mysqli$db=mysqli_connect("","root","123456",“

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论