PHP与MySQL.WEB开发

本文涵盖PHP标记、注释及变量管理等基础知识,并深入探讨MySQL数据库操作、优化技巧及安全性设置等内容,适合PHP与MySQL开发者参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

PHP与MySQL.WEB开发》:
PHP标记风格:<?php ?>、<? ?>:遵循SGML、<script language="php"></script>:JavaScript方式、<% %>:默认禁用,使用asp_tags选项可以开启。
PHP注释风格:/* */:C风格、//:C++风格、#:Shell风格。
PHP输出风格:" "、' '、<<<任意标签 任意标签。
PHP标记符法:变量区别大小写、方法不区分大小写。
PHP设置变量:isset()判断是否存在、unset()重置、reset()重新设置到开始处。
PHP变量作用域:
常量:全局可见包括函数内外。
静态变量:函数内申明后限函数内可见多次执行过程将保留该值。
全局变量: 内部超级全局变量脚本任意处可见($GLOBALS、$_SERVER、$_SESSION、$_GET、$_POST、$_REQUEST、$_FILES、$_ENV);
脚本申明全局变量限整个脚本不包括函数内部;
函数内部申明全局时名称要一致。
函数内部变量:对函数而言是本地的函数结束后就不存在了。
PHP执行操作符:``表达式的值是命令的执行结果(eg:$out=`ls -a`:Unix、$out=`dir c`:Windows)。
PHP类型执行符:instanceof(eg:$object instanceof ObjectClass)。
PHP实现\n转化<br />:nl2br函数,
PHP数组排序:sort()值排序下标为数字、asort()值排序下标任意、ksort()下标排序限一维、usort()和uasort()与uksort()用户定义的排序函数、shuffle()、array_reverse任意与反向。
PHP统计数组值出现次数:array_count_value()。
PHP除掉空格函数:trim()、ltrim()、rtrim()。
PHP输出函数说明:echo与printf一样,是语言结构无返回值,printf即返回值又可以带参数(eg:printf("it's %.2f",$price)以%开始)、printf_f区别echo另一种递归打印输出方式效率低。
PHP字符转换:strtoupper()转大写、strtolower()转小写、Ucfirst()首字母转大写、Ucwords()字母每个单词转大写。
PHP字符分隔:explode(值,分隔标识)返回一个数组、strtok(值,分隔标识)吸取第一个值。
PHP字符串比较:strcmp()比较两个字符串是否相等区分大小写、strcasecmp()比较不分大小写、strnatcmp()自然排序比较(12大于2)。
PHP字符串查找:strstr()对大小写敏感、strchr()两者类似、stristr()函数查找字符串在另一个字符串中第一次出现的位置,对大小写不敏感。
PHP字符串查找位置:strpos()第一次出现、strrpos()最后一次出现位置,查找字符串时PHP手册建议使用strpos实现。
PHP字符串查找替换:str_replace()、substr_replace()查找给定位置进行替换。
PHP正则查找字符串:ereg()、eregi()不区分大小写。
PHP正则查找并替换:ereg_replace()、eregi_replace()不区分大小写。
PHP正则分割字符串:splite('\.|@',husumiao@yahoo.com.cn)将分成五个部分。
PHP 加入页眉页脚另类方法:auto_prepend_file与auto_append_file,也可设置.htaccess文件php_value auto_prepend_file "../header.inc"|auto_append_file "../footer.inc"。
数据库的优势(RDBS关系数据库):
比普通文件的数据访问速度更快;
更容易查询并提取满足特定条件的数据;
具有专门的内置机制处理并发访问问题;
可以提供对数据的随机访问;
具有内置的权限系统。
MySQL子查询:
基本子查询:select * from table1 where col1=(select * from table2);
子查询和操作符:ANY、IN、SOME、ALL;
关联子查询:EXISTS、NOT EXISTS;
行子查询:select c1,c2,c3 from t1 where (c1,c2,d3) in (select c1,c2,c3 from t2);
子查询作临时表:from后使用子查询;
更新、修改、删除数据库记录:
更新:update table set col=exp,... where condition order by col limit number,后面也可加条件,不加为所有;
修 改表:alter table customers modify name char(70) not null、aleter table orders add tax foloat(6,2) after amounts、alter table orders drop tax;
删除记录:delete from customers where costomerid=5、drop database test。
数据库过虑:get_magic_quotes_gpc()判断是否已经自动完成了引号、addslashes|stripslashes添加|去除斜线来相应处理数据。
建立连接:new mysqli(local,user,pass,db)面向对象返回对象、mysqli_connect(local,user,pass,db)过程方式连接返回资源。
断开连接:$resule->free()、mysqli_free_result($result)或$db=>close()、mysqli_close($db)。
连接量配置:MySQL在my.ini文件中配置max_connections决定同时连接个数,Apache在httpd.conf文件中设置MaxClients来通过服务器拒绝新的连接请求。
Prepared语句:mysqli函数库支持prepared语句的使用,基本思想是可以向MySQl发送一个需要执行的查询模板,然后单独发送数据($q="insert into book value(?,?);
$s=$db->prepared($q);$s->bind_param('','$isbn');$s->execute();echo $s->affected_rows;$s->close();")。
MySQL权限知识:
MySQL数据库中的mysql表存储了所有用户等的相关权限,所保存信息的5个表:user、host、db、tables_priv、columns_priv;
describe user:浏览该表的结构,查看权限详细。
更新权限:flush privileges、操作系统中mysqladmin flush-privileges|mysqladmin reload。
注意事项:不要将process观察其他用户在做什么、file读写操作系统文件、shutdown、reload等权限授予任何非管理员用户。
权限转移:一个人的权限可以分配给另一个人。
Web问题:授予select、insert权限,不给予drop、alter、create。
查看权限:show grants for 表。
查询操作过程:explain table、describe table、show columns from table。
EXPLAIN知识:
查询语句末尾加\G选项解决表行宽度太大以垂直模式显示结果。
查看MySQL是如何来解释并执行一个select查询,在语句前加explain即可。
查询时间过长、语句过于复杂可以使用explain语句提前检查它。
数据库优化:
设计优化:少用varchar、text、blog、null。
权限:权限尽量少。
表 的优化:表随着更新和删除操作,数据支离破碎使用方法:optimize table tab|myisamchk -r table|myisamchk --sort-index --sort-records=1 pathtomysqldatadirectory/*/*.MYI。
使用索引:简化索引,不创建查询时不使用的索引,运行前使用explain命令检查访索引是否正在使用中。
使用默认值。
数据库备份恢复:
备份:
复制文件:确认表在被锁定中,表类型是READ或WRITE,执行之前执行FLUSH TABLES命令确保索引所做的任何修改将备份写入到磁盘。
使用命令:mysqldump --opt --all-databases > all.sql,备份所有数据库到all.sql文件中。
使用脚本:mysqlhotcopy database /path/for/backup,使用后启动和停止数据库的操作,备份的最后一个方法是维护数据库的一个拷贝。
恢复:
第一种方法备份的,可以将数据库文件重新复制到mysql的相同位置。
经二种方法备份的必须在导出文件中运行查询,接着还应该将数据库更新保存到二进制日志文件中的状态:mysqlbinlog hostname-bin,[0-9]*|mysql。
第一篇 使用PHP 第1章 PHP快速入门教程 1.1 开始之前:了解PHP 1.2 创建一个示例应用:Bob汽车零部件商店 1.2.1 创建订单表单 1.2.2 表单处理 1.3 在HTML中嵌入PHP 1.3.1 使用PHP标记 1.3.2 PHP语句 1.3.3 空格 1.3.4 注释 1.4 添加动态内容 1.4.1 调用函数 1.4.2 使用date()函数 1.5 访问表单变量 1.5.1 简短、中等以及长风格的表单变量 1.5.2 字符串的连接 1.5.3 变量文本 1.6 理解标识符 1.7 检查变量类型 1.7.1 PHP的数据类型 1.7.2 类型强度 1.7.3 类型转换 1.7.4 可变变量 1.8 声明使用常量 1.9 理解变量的作用域 1.10 使用操作符 1.10.1 算术操作符 1.10.2 字符串操作符 1.10.3 赋值操作符 1.10.4 比较操作符 1.10.5 逻辑操作符 1.10.6 位操作符 1.10.7 其他操作符 1.11 计算表单总金额 1.12 理解操作符的优先级结合性: 1.13 使用可变函数 1.13.1 测试设置变量类型 1.13.2 测试变量状态 1.13.3 变量的重解释 1.14 根据条件进行决策 1.14.1 if语句 1.14.2 代码块 1.14.3 else语句 1.14.4 elseif语句 1.14.5 switch语句 1.14.6 比较不同的条件 1.15 通过迭代实现重复动作 1.15.1 while循环 1.15.2 forforeach循环 1.15.3 do...while循环 1.16 从控制结构或脚本中跳出 1.17 使用可替换的控制结构语法 1.18 使用declare 1.19 下一章 第2章 数据的存储检索 2.1 保存数据以便后期使用 2.2 存储检索Bob的订单 2.3 文件处理 2.4 打开文件 2.4.1 选择文件模式 2.4.2 使用fopen()打开文件 2.4.3 通过FTP或HTTP打开文件 2.4.4 解决打开文件时可能遇到的问题 2.5 写文件 2.5.1 fwrite()的参数 2.5.2 文件格式 2.6 关闭文件 2.7 读文件 2.7.1 以只读模式打开文件:fopen() 2.7.2 知道何时读完文件:feof() 2.7.3 每次读取一行数据:fgets()、fgetss()fgetcsv() 2.7.4 读取整个文件:readfile()、fpassthru()file() 2.7.5 读取一个字符:fgetc() 2.7.6 读取任意长度:fread() 2.8 使用其他有用的文件函数 2.8.1 查看文件是否存在:file_exists() 2.8.2 确定文件大小:filesize() 2.8.3 删除一个文件:unlink() 2.8.4 在文件中定位:rewind()、fseek()ftell() 2.9 文件锁定 2.10 更好的方式:数据库管理系统 2.10.1 使用普通文件的几个问题 2.10.2 RDBMS是如何解决这些问题的 2.11 进一步学习 2.12 下一章 第3章 使用数组 3.1 什么是数组 3.2 数字索引数组 3.2.1 数字索引数组的初始化 3.2.2 访问数组的内容 3.2.3 使用循环访问数组 3.3 使用不同索引的数组 3.3.1 初始化相关数组 3.3.2 访问数组元素 3.3.3 使用循环语句 3.4 数组操作符 3.5 多维数组 3.6 数组排序 3.6.1 使用sort()函数 3.6.2 使用asort()函数ksort()函数对相关数组排序 3.6.3 反向排序 3.7 多维数组的排序 3.7.1 用户定义排序 3.7.2 反向用户排序 3.8 对数组进行重新排序 3.8.1 使用shuffle()函数 3.8.2 使用array_reverse()函数 3.9 从文件载入数组 3.10 执行其他的数组操作 3.10.1 在数组中浏览:each()、current()、reset()、end()、next()、pos()prev() 3.10.2 对数组的每一个元素应用任何函数:array_walk() 3.10.3 统计数组元素个数:count()、sizeof()array_count_values() 3.10.4 将数组转换成标量变量:extract() 3.11 进一步学习 3.12 下一章 第4章 字符串操作正则表达式 4.1 创建一个示例应用程序:智能表单邮件 4.2 字符串的格式化 4.2.1 字符串的整理:chop()、ltrim()trim() 4.2.2 格式化字符串以便显示 4.2.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值