知识大全 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个小技巧

PHP动态网站开发中常用的8个小技巧  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &n

知识大全 初学入门 PHP 和 MySQL

初学入门PHP和MySQL  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  我想要使用要使用PHP

知识大全 用MySQL和PHP创建XML

用MySQL和PHP创建XML  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  XML是作为数据交

知识大全 从入门到精通---初学PHP 和 MySQL 三

从入门到精通---初学PHP和MySQL三  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  注意我

知识大全 Apache、SSL、MySQL和PHP平滑无缝地安装

Apache、SSL、MySQL和PHP平滑无缝地安装  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧

知识大全 函数递归实现php和MySQL动态树型菜单

函数递归实现php和MySQL动态树型菜单  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  树型菜

知识大全 用PHP连mysql和oracle数据库性能比较

用PHP连mysql和oracle数据库性能比较  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 学者之win2k+mysql+php4快速安装

  我的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)小编为大家搜集整理后发布的内容