知识大全 PHP 和 MySQL 开发的 8 个技巧
Posted 函数
篇首语:无名,天地之始;有名,万物之母。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 PHP 和 MySQL 开发的 8 个技巧相关的知识,希望对你有一定的参考价值。
PHP 和 MySQL 开发的 8 个技巧 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
LAMP 架构的网站 我以前注重的多是安装/配置方面的 讲述开发的相对较少 因为自己从事开发也少 本文的原文当然也来自 Published on The O Reilly Neork () 看了以后 颇有启发 以前开发中遇到的一些问题 迎刃而解 所以翻译出来和大家共享 PHP 中数组的使用 在操作数据库时 使用关联数组(associatively indexed arrays)十分有帮助 下面我们看一个基本的数字格式的数组遍历 $temp[ ] = richmond ; $temp[ ] = tigers ; $temp[ ] = premiers ; for($x= ;$x echo $temp[$x]; echo ; ?> 然而另外一种更加节省代码的方式是 $temp = array( richmond tigers premiers ); foreach ($temp as $element) echo $element ; ?> foreach 还能输出文字下标 $temp = array( club => richmond nickname => tigers aim => premiers ); foreach ($temp as $key => $value) echo $key : $value ; ?> PHP 手册中描述了大约 个用于处理数组的函数 在 PHP 字符串中加入变量 这个很简单的 $temp = hello echo $temp world ; ?> 但是需要说明的是 尽管下面的例子没有错误 $temp = array( one => o => ); // 输出 : The first element is echo The first element is $temp[one] ; ?> 但是如果后面那个 echo 语句没有双引号引起来的话 就要报错 因此建议使用花括号 $temp = array( one => o => ); echo The first element is $temp[ one ] ; ?> 采用关联数组存取查询结果 看下面的例子 $connection = mysql_connect( localhost albert shhh ); mysql_select_db( winestore $connection); $result = mysql_query( SELECT cust_id surname firstname FROM customer $connection); while ($row = mysql_fetch_array($result)) echo ID:\\t$row[ cust_id ]\\n ; echo Surname\\t$row[ surname ]\\n ; echo First name:\\t$row[ firstname ]\\n\\n ; ?> 函数 mysql_fetch_array() 把查询结果的一行放入数组 可以同时用两种方式引用 例如 cust_id 可以同时用下面两种方式 $row[ cust_id ] 或者$row[ ] 显然 前者的可读性要比后者好多了 在多表连查中 如果两个列名字一样 最好用别名分开 SELECT winery name AS wname region name AS rname FROM winery region WHERE winery region_id = region region_id; 列名的引用为 $row[ wname ] 和 $row[ rname ] 在指定表名和列名的情况下 只引用列名 SELECT winery region_id FROM winery 列名的引用为 $row[ region_id ] 聚集函数的引用就是引用名 SELECT count(*) FROM customer; 列名的引用为 $row[ count(*) ] 注意常见的 PHP bug 常见的 PHP 纠错问题是 No page rendered by the Web browser when much more is expected A pop up dialog stating that the Document Contains No Data A partial page when more is expected 出现这些情况的大多数原因并不在于脚本的逻辑 而是 HTML 中存在的 bug 或者脚本生成的 HTML 的 bug 例如缺少类似 之类的关闭 Tag 页面就不能刷新 解决这个问题的办法就是 查看 HTML 的源代码 对于复杂的 不能查到原因的页面 可以通过 W C 的页面校验程序 来分析 如果没有定义变量 或者变量定义错误也会让程序变得古怪 例如下面的死循环 for($counter= ; $counter< ; $Counter++) myFunction(); ?> 变量 $Counter 在增加 而 $counter 永远小于 这类错误一般都能通过设置较高的错误报告级别来找到 error_reporting(E_ALL); for($counter= ; $counter< ; $Counter++) myFunction(); ?> 采用 header() 函数处理单部件查询 在很多 Web 数据库应用中 一些功能往往让用户点击一个连接后 继续停留在当前页面 这样的工作我叫它 单部件查询 下面是一个叫做 calling php 的脚本 //W C//DTD HTML Transitional//EN > Click here! 当用户点击上面的连接时 就去调用 action php 下面是 action php 的源码 // 数据库功能 // 重定向 header( Location: $HTTP_REFERER ); exit; ?> 这里有两个常见的错误需要提醒一下 调用 header() 函数后要包含一个 exit 语句让脚本停止 否则后续的脚本可能会在头发送前输出 header() 函数常见的一个错误是 Warning: Cannot add header information headers already sent header() 函数只能在 HTML 输出之前被调用 因此你需要检查 php 前面可能存在的空行 空格等等 reload 的问题及其解决 我以前在写 PHP 程序时 经常碰到页面刷新时 数据库多处理一次的情况 我们来看 addcust php $query = INSERT INTO customer SET surname = $surname firstname = $firstname ; $connection = mysql_connect( localhost fred shhh ); mysql_select_db( winestore $connection); $result = mysql_query($query $connection); ?> //W C//DTD HTML Transitional//EN > I ve inserted the customer for you ?> 假设我们用下面的连接使用这个程序 ?surname=Smith&firstname=Fred 如果这个请求只提交一次 OK 不会有问题 但是如果多次刷新 你就会有多条记录插入 这个问题可以通过 header() 函数解决 下面是新版本的 addcust php $query = INSERT INTO customer SET surname = $surname firstname = $firstname ; $connection = mysql_connect( localhost fred shhh ); mysql_select_db( winestore $connection); $result = mysql_query($query $connection); header( Location: cust_receipt php ); ?> 这个脚本把浏览器重定向到一个新的页面 cust_receipt php //W C//DTD HTML Transitional//EN > I ve inserted the customer for you 这样 原来的页面继续刷新也没有副作用了 巧用锁机制来提高应用性能 如果我们要紧急运行一个报表 那么 我们可以对表加写锁 防治别人读写 来提高对这个表的处理速度 用 mysql_unbuffered_query() 开发快速的脚本 这个函数能用来替换 mysql_query() 函数 主要的区别就是 mysql_unbuffered_query() 执行完查询后马上返回 不需要等待或者对数据库加锁 但是返回的行数不能用mysql_num_rows() 函数来检查 因为输出的结果集大小未知 cha138/Article/program/MySQL/201311/29315相关参考
PHP动态网站开发中常用的8个小技巧 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &n
初学入门PHP和MySQL 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 我想要使用要使用PHP
用MySQL和PHP创建XML 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! XML是作为数据交
从入门到精通---初学PHP和MySQL三 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 注意我
知识大全 Apache、SSL、MySQL和PHP平滑无缝地安装
Apache、SSL、MySQL和PHP平滑无缝地安装 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧
函数递归实现php和MySQL动态树型菜单 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 树型菜
用PHP连mysql和oracle数据库性能比较 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
我的php和mysql的软件包是phpplWinzipmysqlbetawinzip 先安装mysql用winzip打开软件包进行完全安装默认安装路径为:c:\\mysql 安装完成后打开开始
知识大全 为什么国外很多网站都是用php做的,php和jsp相比有什么优势
为什么国外很多网站都是用php做的,php和jsp相比有什么优势?最重要是开发成本低,因为apache+mysql+php+linux,都是开源的,换句话来说,都是免费的然后php入门比jsp容易很多
知识大全 将IP地址转换为整型数字的PHP方法、Asp方法和MsSQL方法、MySQL方法
将IP地址转换为整型数字的PHP方法、Asp方法和MsSQL方法、MySQL方法 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容