php 利用fopen做mysql错误日志记录

 更新时间:2016年11月25日 15:07  点击:1798
这是今天有个SB客户要我查错误,他又不给错误提示信息,突然想起一个办法那就是在mysql数据库查询类里面的出错处理中加个错误日志记录功能,这个只要我们查看这个文件就知道错误的sql语句。
 代码如下 复制代码

<?

function putFile($file_name,$file_string)
{
    if($f=fopen($file_name,"a+"))
    {
        fwrite($f, $file_string.date("Y-m-d H:i:s")."nr");
    }
    fclose($f);
}

$string ='aadb';
putFile( $logfile='logfile.txt',$string );
?>

在php中list函数的作用是把数组中的值赋给一些变量,这样在简单的数据操作时我们就可以利用list来实现 哦,有需的可以参考一下。

注: list() 仅能用于数字索引的数组并假定数字索引从 0 开始。

例子 1. list() 例子

 代码如下 复制代码
<?php
 
$info = array('coffee', 'brown', 'caffeine');
 
// Listing all the variables
list($drink, $color, $power) = $info;
echo "$drink is $color and $power makes it special.n";
 
// Listing some of them
list($drink, , $power) = $info;
echo "$drink has $power.n";
 
// Or let's skip to only the third one
list( , , $power) = $info;
echo "I need $power!n";
 
?>

例子 2. 使用 list() 的例子

 代码如下 复制代码
<table>
<tr>
  <th>Employee name</th>
  <th>Salary</th>
</tr>
 
<?php
 
$result = mysql_query("SELECT id, name, salary FROM employees",$conn);
while (list($id, $name, $salary) = mysql_fetch_row($result)) {
    echo " <tr>n".
         "  <td><a href="info.php?id=$id">$name</a></td>n".
         "  <td>$salary</td>n".
         " </tr>n";
}
 
?>
 
</table>

警告
list() 从最右边一个参数开始赋值。如果你用单纯的变量,不用担心这一点。但是如果你用了具有索引的数组,通常你期望得到的结果和在 list() 中写的一样是从左到右的,但实际上不是。是以相反顺序赋值的。

例子 3. 在 list() 中使用数组索引

 代码如下 复制代码
<?php
$info = array('coffee', 'brown', 'caffeine');
list($a[0], $a[1], $a[2]) = $info;
var_dump($a);
?>

产生如下输出(注意单元顺序和 list() 语法中所写的顺序的比较):

 代码如下 复制代码

array(3) {
  [2]=>
  string(8) "caffeine"
  [1]=>
  string(5) "brown"
  [0]=>
  string(6) "coffee"
}

今天详细的介绍一下str_replace()字符替换函数,有需要的朋友可以参考一下。
 代码如下 复制代码

<?php
$str = "当所有的人[逗]离开我的时候[逗]你劝我要耐心等候[句]";
//第一种方法
echo "原字符串:".$str."<br />";
echo "使用str_replace()函数进行替换:".str_replace('[','(',$str)."<br />";//第一个参数要替换的字符,第二个参数写要替换成的字符,第三个写原字符串
echo "使用str_replace()函数进行替换:".str_replace(']',')',$str)."<br />";

//第二种方法
echo "原字符串:".$str."<br />";
$str1=array('[逗]','[句]');
$str2=array(',','。');
echo "使用str_replace()函数进行替换:".str_replace($str1,$str2,$str)."<br />";

//第三种方法
$vowels = array("a", "e", "i", "o", "u", "A", "E", "I", "O", "U");
echo "使用str_replace()函数进行替换:".str_replace($vowels, "", "Hello World of PHP")."<br />";

?>

这里主要是介绍一个实用的php substr_count()函数,统计字符串中一个字符出现的次数,有需要的朋友可以参考。

substr_count(string,substring,start,length)

参数 描述
string 必需。规定要检查的字符串。
substring 必需。规定要检索的字符串。
start 可选。规定在字符串中何处开始搜索。
length 可选。规定搜索的长度。

 

 代码如下 复制代码

<?php

$str="ni hao ,wo jiao wang hui ,lai zi an hui chao hu";

echo "原字符串:".$str."<br />";

$str1=substr_count($str,'i');//substr_count():统计字符串在函数中出现的次数

echo "使用substr_count()之后:".$str1."<br />";

$str2=substr_count($str,'i',6);//substr_count($str,'i',6):从第6个字符串开始统计,后面还跟数字的话,就是统计多少个,如果不加的话,默认是到最后

echo "使用substr_count()之后:".$str2."<br />";

?>

本文章简单的介绍一下关于session_destroy(),session_unset()区别说明,有需要的朋友可以参考一下。

session_unset()

You should know that on recent PHP only the first one of these functions works correctly. And if you use the other two, var_dump will print you the result you expected (session cleaned up), but the session file on the server won't be cleaned up. So use the first one.

 代码如下 复制代码

<?php

function session_clean1($logout=false)
 {
  $v=array();
  foreach($_SESSION as $x=>$y)
   if($x!="redirector"&&($x!="user"||$logout))
    $v[]=$x;

  foreach($v as $x)
   unset($_SESSION[$x]);
  return;
 }

function session_clean2($logout=false)
 {
  foreach($_SESSION as $x=>$y)
   if($x!="redirector"&&($x!="user"||$logout))
    unset($_SESSION[$x]);
  return;
 }

function session_clean3($logout=false)
 {
  $s=($logout||!isset($_SESSION["user"]))?array():
   array("user"=>$_SESSION["user"]);
  if(isset($_SESSION["redirector"]))
   $s["redirector"]=$_SESSION["redirector"];
  $_SESSION=$s;
 }

?>

On previous php (<<5.1.4) releases at least the third one worked correctly.

 

释放当前在内存中已经创建的所有$_SESSION变量,但不删除session文件以及不释放对应的session id

session_destroy()

删除当前用户对应的session文件以及释放session id,内存中的$_SESSION变量内容依然保留

因此,释放用户的session所有资源,需要顺序执行如下代码:

PHP代码

 代码如下 复制代码

<?php
// Initialize the session.
// If you are using session_name("something"), don't forget it now!
session_start();

// Unset all of the session variables.
$_SESSION = array();

// If it's desired to kill the session, also delete the session cookie.
// Note: This will destroy the session, and not just the session data!
if (ini_get("session.use_cookies")) {
    $params = session_get_cookie_params();
    setcookie(session_name(), '', time() - 42000,
        $params["path"], $params["domain"],
        $params["secure"], $params["httponly"]
    );
}

// Finally, destroy the session.
session_destroy();
?>

[!--infotagslink--]

相关文章

  • Ecshop提示Only variables should be passed by reference in错误

    在安装好ecshop软件之后我们打开首页时提示Only variables should be passed by reference in错误了,碰到这个问题是什么原因呢?下面我们就一起来看看解决办法吧。...2016-11-25
  • 409错误是什么 http 409错误怎么解决

    409错误是什么?http 409错误怎么解决呢?不少站长在遇到这个错误代码之后都一筹莫展,本次一聚教程网为大家带来了详细的说明,快来看看吧。 409错误是什么: HTTP 40...2017-01-22
  • 414错误是什么 414错误怎么解决

    414错误是HTTP协议状态码中的一种,很多都还不知道414错误是什么,以及不知道怎么解决414错误,那么就来看看小编带来的介绍吧。 414错误是什么: HTTP 414错误,(Requ...2017-01-22
  • http 405错误是什么 http 405错误怎么解决

    http 405错误是什么?http 405错误怎么解决?相信很多站长都在找这两个问题的答案,本次小编为大家带来了详细的教程,快来看看吧。 405错误是什么: HTTP 405错误是H...2017-01-22
  • 401错误码代表什么 401错误解决办法

    401是HTTP状态码的一种,属于“请示错误”,表示请求可能出错,已妨碍了服务器对请求的处理。具体的401错误是指:未授权,请求要求进行身份验证。登录后,服务器可能会返回对页面...2017-01-22
  • http 402错误是什么 http 402简介

    http 402错误是什么?402错误较为少见,一般不轻易出现,下面小编就来告诉大家402错误是什么吧。 HTTP 402错误是HTTP状态码的一种,表示“要求付费”; 所求的...2017-01-22
  • 411错误是什么 411错误怎么解决

    411错误是HTTP协议状态码的一种,很多人都还不知道411错误是什么,本次一聚教程网将为大家进行解答,并且告诉大家411错误怎么解决。 411错误是什么: HTTP 411错误,(Lengt...2017-01-22
  • 404错误是什么 404错误怎么解决

    403错误是网站访问过程中,常见的错误提示。资源不可用,服务器理解客户的请求,但拒绝处理它。通常由于服务器上文件或目录的权限设置导致,比如IIS或者apache设置了访问权限...2017-01-22
  • apache网站提示503错误解决办法

    Apache status 503 的原因大致有如下几种情况 : 1、 CPU 负载过高,服务器响应不过来,返回503 2、 系统连接数超限,超过MaxVhostClients的上限,返回503 3、 单IP连接数超限,超过M...2016-01-28
  • 403错误是什么 403错误怎么解决

    403错误是HTTP状态码的一种,属于“请示错误”,表示服务器拒绝请求。如果在搜索引擎尝试抓取您网站上的有效网页时显示此状态代码,那么,这可能是您的服务器或主机拒绝搜索...2017-01-22
  • 412错误是什么 412错误怎么解决

    412错误是什么?412错误怎么解决?本次一聚教程网将为大家带来详细的介绍,帮助大家全面了解412错误的意思以及解决412错误的方法。 412错误是什么: HTTP 412错误,(Precond...2017-01-22
  • HTTP 408错误是什么 HTTP 408错误解决方法

    相信很多站长都遇到过这样一个问题,访问页面时出现408错误,下面一聚教程网将为大家介绍408错误出现的原因以及408错误的解决办法。 HTTP 408错误出现原因: HTT...2017-01-22
  • 406错误是什么 406错误怎么解决

    HTTP 406错误是HTTP协议状态码的一种,表示无法使用请求的内容特性来响应请求的网页。一般是指客户端浏览器不接受所请求页面的 MIME 类型。 而MIME类型是在把输出...2017-01-22
  • 407错误是什么 407错误怎么解决

    407错误是什么?407错误怎么解决?不少站长都遇到过407错误,下面小编将告诉大家如何处理407错误。 407错误是什么: HTTP 407错误是HTTP协议状态码的一种,表示需要代...2017-01-22
  • 410错误是什么 http 410错误怎么解决

    410错误是HTTP协议状态码的一种,本次一聚教程网将为大家详细介绍HTTP 410错误是什么,以及410错误的解决办法。 410错误是什么: HTTP 410错误是HTTP协议状态码的...2017-01-22
  • HTTP 400错误是什么 HTTP 400错误怎么解决

    每当遇到http错误代码为400,代表客户端发起的请求不符合服务器对请求的某些限制,或者请求本身存在一定的错误,那么HTTP 400错误怎么解决呢?请看下文介绍。 目前400错...2017-01-22
  • PHP Fatal error: Cannot use object of type stdClass as array in错误

    下面一起来看看在php开发中碰到PHP Fatal error: Cannot use object of type stdClass as array in错误问题的解决办法吧。 普通的数组出现如下错误 代码...2016-11-25
  • PHP Curl出现403错误的解决办法

    自己用的小PHP应用,使用curl抓网页下来处理,为了穿墙方便,使用Privoxy作为代理,便于选择哪些网站使用proxy、哪些不用。但今天却遇到了奇怪的问题,访问google baidu这些网站居然都返回403错误,而访问其他的一些网站没事,如果...2014-05-31
  • C#新手常犯的错误汇总

    这篇文章主要介绍了C#新手常犯的错误汇总,对于经验丰富的C#程序员同样具有很好的参考借鉴价值,需要的朋友可以参考下...2020-06-25
  • MySQL ERROR 2013 (HY000)错误解决方法

    当通过 TCP/IP 连接 MySQL 远程主机时,出现 ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 104 。如果是在linux shell命令行中直接打 mysql 命令,...2015-03-15