备份数据库代码,php数组注解

By admin in 4858.com on 2019年6月22日

页面追踪调节和测试

写那篇随笔从前,笔者鲜明陷入了二个令本人大致丢弃的主见:手册上讲的不得了详细,网络的例证批注多的乌烟瘴气,笔者依靠并不精熟的技艺经验写这么些事物,贻笑大方是一,有怎样用处是二。这么些主见在小编的脑际里连连的闪现,以致于自个儿的事例其实写好很久,可是迟迟未有动手写博文。终于,明天上班路上,不断纠结的本身想知道一件事:作者写的享有的事物并不是去指点外人怎么,更不是为了显示自己的技艺怎么。小编在新浪开博最关键的是让投机得到历练,让本人有坚韧不拔做到三个整机的,相比较不错的民用项目。获取,它的陈设性极难看,或然,它的逻辑很简短。可是,一步步敲门起来的长河才是自己想要的东西。小编急需百折不挠。

单表备份 代码:

php教程:数组表明,遍历,数组全局变量

4858.com 1

 CUTucsonD分别是create,update,read,delete的缩写,对数据的CUKoleosD是php的最基本的操作。tp封装了很好的curd操作方法。上面,作者将呈现自个儿的user模块的相干curd操作。 至于在此以前说的rbac权限决定还亟需过段时间。

复制代码 代码如下:

复制代码 代码如下:

 要打开它,须要:

率先,建设构造用户表的数据结构:4858.com 2

<?php   
class Db   
{   
    var $conn;   

<?
/*
* 一、数组的概述
* 1.数组的四面山真面目:管理和操作一组变量,成批处理
* 2.数组时复合类型(能够积累多个)
* 3.数组中得以积累任性长度的数额,也能够累积自便等级次序的多少
* 4.数组能够成功其它语言数据结构的效用(链表,队列,栈,群集类)
*
*
*
* 二、数组的归类
* 数组中有多个单元,(单元称为成分)
* 种种成分(下标[键]和值)
* 单访问成分的时候,都以经过下标(键)来做客成分
* 1.一维数组,二维数组,三个维度数组。。。多维数组
* (数组的数组,正是在数组中存有其余的数组)
* 2.PHP中有二种数组
* 索引数组:正是下标是逐个整数的目录
* 关联数组:就是下标是字符串作为目录
*
* 下标(整数,字符串)唯有那二种
*
*
* 三、数组多样声称情势
*
* 1.直接为数组成分赋值注脚
* 要是索引下标不提交,就能够从0开首顺序索引
* 假使给出索引下标,下二个就能从最大的初叶增1
* 假如前面现身后边的下标,要是是赋值正是为眼下的成分重新赋值
* 混合注脚时,索引和关系不相互影响(不影响索引下标的宣示)
*
* 2.用到array()函数表明
* 暗中同意是索引数组
* 如若为涉及数组和索引数组钦赐下标,使用 键=>值
* 三个成员之间利用” , “分割
* 3.使用其余的函数注脚
*
*
*
*
*/
//索引数组
$user[0]=1;//用户序号
$user[1]=”zhangsan”;//用户名
$user[2]=10;//年龄
$user[3]=”nan”;//性别
echo ‘<pre>’;
print_r($user);
echo ‘</pre>’;
//关联数组
$user[“id”]=1;
$user[“name”]=”zhangsan”;
$user[“age”]=10;
$user[“sex”];
$user[“age”]=90;//赋值
echo $user[“name”];//输出
//使用array()声明数组
$user=array(1,”zhangsan”,10,”nan”);
//使用array()证明提到数组
$user=array(“id”=>1,”name”=>”zhangsan”,”age”=>10,”sex”=>”nan”);
//注脚多维数组(多条记下),来保存叁个表中的多条用户音信记录
$user=array(
//用$user[0]调用这一行,比方调用那条记下中的姓名,$user[0][1]
array(1,”zhangsan”,10,”nan”),
//用$user[1]调用这一行,举个例子调用那条记下中的姓名,$user[1][1]
array(2,”lisi”,20,”nv”)
);
//数组保存多少个表,各类表有多条记下
$info=array(
“user”=>array(
array(1,”zhangsan”,10,”nan”),
array(2,”lisi”,20,”nv”)
),
“score”=>array(
array(1,90,80,70),
array(2,60,40,70)
)

1、在配置文件中,参与配置项

然后,在tp的Conf目录下定义相关的数据库配置项,能够从ThinkPHP的宗旨包下的Common/convention.php下找到相关配置项,然后遵照自己的莫过于境况再说修改。以前说过,作者用的是sea版本的tp宗旨包,数据库的布局sea已经定义好,不许额外安插。

    function
Db($host=”localhost”,$user=”root”,$pass=”root”,$db=”test”)   
    {   
      if(!$this->conn=mysql_connect($host,$user,$pass))   
      die(“can’t connect to mysql sever”);   
      mysql_select_db($db,$this->conn);   
      mysql_query(“SET NAMES ‘UTF-8′”);   
    }   

);
echo $info[“score”][1][1];//输出60,
?>
数组一级全局变量
<?php
/* 预订义数组:
* 自动全局变量—超全局数组
*
* 1.暗含了来自WEB服务器,客户端,运营条件和用户输入的多少
* 2.那些数组相比非常
* 3.全局范围内自行生效,都得以直接动用这个数组
*
4.用户无法自定义这几个数组,但那个数组的操作方法和友爱定义的数组操作的章程一样
* 5.在函数中央市直机关接能够动用那个数组
*
* $_GET //经由UCRUISERL恳求提交至脚本的变量
* $_POST //经由HTTP POST 方法提交到剧本的变量
* $_REQUEST //经由GET , POST和CEOKIE机制提交 到脚本的变量
* $_FILES //经由http post方法文件上传而付出至脚本的变量
* $_COOKIE
* $_SESSION
* $_ENV //实施境况提交至脚本的变量
* $_SE路虎极光VEXC90 //变量由WEB服务器设定的,或间接和脚下剧本的实行碰着相关联
* $GLOBALS
//只固然当前剧本有效的变量都在此间,数组的键名字为大局脚本的称呼
*
*
*/
//超全局数组在函数内部能够一贯调用
$arr=array(10,20);//一般数组
$_GET=array(50,90);//超全局数组
function demo(){
global $arr;//调用全局变量要先包括
print_r($arr);
print_r($_GET);//直接调用超全局数组不用含有
}

    ‘SHOW_PAGE_TRACE’=>true,
   

然后,在类型目录下的lib/Action/下创建有关的action:此处创立UserAction.class.php。在那一个文件下各自定义一下艺术。

    function execute($sql)   
    {   
       return mysql_query($sql,$this->conn);   
    }   

?>
<!–
**********页面传值get诉求***************
–>
<?php
//直接把传的值当变量用,当php.ini配置文件中register_global=on时有用。
echo $username.”<br>”;
echo $email.”<br>”;
echo $page.”<br>”;
//最安定的取值方法
echo $_GET[“username”].”<br>”;
echo $_GET[“email”].”<br>”;
echo $_GET[“page”].”<br>”;
?>
<a
href=”demo.php?username=zhangsan&email=aaa@bbb.com&page=45″>this is a
$_GET test</a>
<!–
***********页面传值post诉求****************
–>
<form action=”demo.php” method=”post”>
username:<input type=”text” name=”uname” /> <br/>
password:<input type=”password” name=”pass” /> <br/>
<input type=”submit” value=”login” /> <br />
</form>
<?php
print_r($_GET);//不能够接过到
print_r($_POST);//那样技能接受到
?>
<?php
//$_ENV的使用
echo'<pre>’;
print_r($_ENV);
echo'</pre>’;
//彰显当前处境
// 也得以单个遍历
?>
<?php
//利用$GLOBALS超全局数组在函数内部调用全局变量
$a=100;
$b=200;
$c=300;
function demo()
{
//直接调用全局变量
echo $GLOBALS[“a”].”<br>”;
echo $GLOABLS[“b”].”<br>”;
echo $GLOABLS[“c”].”<br>”;

 

 1 class UserAction extends Action{

    function findCount($sql)   
    {   
        $result=$this->execute($sql);   
        return mysql_num_rows($result);   
    }   

}
?>

2、调节器中须要

 2 //记录列表    read
 3 public function index(){}
 4 //新添记录    create
 5 public function add(){}
 6 //编辑记录    update
 7 public function edit(){}
 8 //删除记录    delete
 9 public function delete(){}
10 }

    function findBySql($sql)   
    {   
        $array=array();   
        $result=mysql_query($sql);   
        $i=0;   
        while($row=mysql_fetch_assoc($result))   
           {   
          $array[$i]=$row;    
       $i++;   
           }   
        return $array;   
    }   

数组遍历
<?php
/* 数组的遍历
*
* 1.选取for语句循环遍历数组
* 1.其余语言(唯有这一种办法)
* 2.PHP中这种艺术不是首要推荐的办法
* 3.数组必须是索引数组,而且下标必须是连接的。
* (索引数组下标能够不总是,数组还大概有涉及数组,那三种不可能遍历)
*
* 2.选用foreach语句循环遍历数组
* foreacho(数组变量 as 变量值){
* //循环体
* }
* 1.循环往复次数由数组的成分个数调节
* 2.每壹次巡回都会将数组中的成分分别赋值给前边变量
*
* foreach(数组变量 as 下标变量=> 值变量){
* }
*
*
* 3.while() list() each() 组合循环遍历数组
*
* each()函数:
* 1.亟待三个数组作为参数
* 2.返再次来到的也是三个数组
* 3.再次回到来的数组是0,1,key,value多个下标(固定的)
* 0和key下标是时下参数数组成分的键
* 1和value下标是方今参数数组成分的值
* 4.暗中同意当前元素正是第三个成分
* 5.每推行一遍后就能够将如今因素向后活动
* 6.借使到最终的元素再实行这几个函数,则赶回false
* list()函数:
* 1. list()=array();须求将三个数组赋值给这么些函数
* 2.数组中的成分个数,要和list()函数中的参数个数同样
*
3.数组中的每种成分值会赋值list()函数中的各类参数,list()将种种参数转为变量
* 4.list()只可以接受索引数组
* 5.按索引的下标顺序来给参数赋值
*
*
*
*/
//for语句遍历数组
$user=array(1,”zhangsan”,40,”nan”);
for($i=0;$i<4;$i++)
{
echo”$user[{$i}]=”.$user[$i].”<br>”;
}

 

 上面分别定义了curd对应的操作。上边,具体贯彻着多个章程。

    //$con的两种意况   
    //空:再次回到全体记录   
    //array:eg. array(‘id’=>’1’) 返回id=1的记录   
    //string :eg. ‘id=1’ 返回id=1的记录   
    function toExtJson($table,$start=”0″,$limit=”10″,$cons=””)   
    {   
       $sql=$this->generateSql($table,$cons);   
       $totalNum=$this->findCount($sql);   
       $result=$this->findBySql($sql.” LIMIT “.$start.”
,”.$limit);   
       $resultNum = count($result);//当前结果数   
      $str=””;   
      $str.= “{“;   
      $str.= “‘totalCount’:’$totalNum’,”;   
      $str.=”‘rows’:”;   
      $str.=”[“;   
      for($i=0;$i<$resultNum;$i++){   
       $str.=”{“;    
       $count=count($result[$i]);   
       $j=1;   
       foreach($result[$i] as $key=>$val)   
       {   
       if($j<$count)   
       {   
       $str.=”‘”.$key.”‘:'”.$val.”‘,”;   
       }   
备份数据库代码,php数组注解。       elseif($j==$count)   
       {   
       $str.=”‘”.$key.”‘:'”.$val.”‘”;   
       }   
       $j++;   
                }   

//使用foreach
$user=array(1,”zhangsan”,40,”nan”);
foreach($user as $val)//$val是自定义变量
{
echo $val.”<br>”;//输出与下标非亲非故
}
foreach($user as $key=>$val)//$val $key 都以自定义变量
{
echo $key.”=====>”.$val.”<br>”;
}

class IndexController extends Controller {
    public function index(){
        $user=new Model(‘User’);
        // echo $user;
        // // echo ‘大隋唐’;
        // // 字符串条件查询
        // // $map[‘id’]=3;
        // // $map[‘user’]=’柯南’;
        // // $map[‘_logic’]=’OR’;
        // echo “<pre>”;
        // var_dump($user->where($map)->select());
    }
}

 首先,create操作。

       $str.=”}”;   
       if ($i != $resultNum-1) {   
                 $str.= “,”;   
             }   
      }   
      $str.=”]”;   
      $str.=”}”;   
      return $str;     
    }   

//foreach遍历多维数组
$info=array(
“user”=>array(
//$user[0]
array(1, “zansan”, 10, “nan”),
//$user[1][1]
array(2, “lisi”, 20, “nv”), //$user[1]
//$user[2]
array(3, “wangwu”, 30, “nan”)
),
“score”=>array(
array(1, 100, 90, 80),
array(2, 99, 88, 11),
array(3, 10, 50, 88)
),
“connect”=>array(
array(1, ‘110’, ‘aaa@bbb.com’),
array(2, ‘120’, ‘bbb@ccc.com’),
array(3, ‘119’, ‘ccc@ddd.com’)
)
);
foreach($info as $tableName=>$table)
{
echo ‘<table align=”center” width=”500″ border=”1″>’;
echo
‘<caption><h1>’.$tableName.'</h1></caption>’;
foreach($table as $row)
{
echo ‘<tr>’;
foreach($row as $col)
{
echo ‘<td>’.$col.'</td>’;
}
echo ‘</tr>’;
}
echo ‘</table>’;
}

 不要前边的注释里面包车型大巴剧情,

 1 public function add() {     //用户新增加  

    function generateSql($table,$cons)   
    {   
        $sql=””;//sql条件   
       $sql=”select * from “.$table;   
       if($cons!=””)   
       {   
       if(is_array($cons))   
       {   
         $k=0;   
         foreach($cons as $key=>$val)   
      {   
      if($k==0)   
      {   
      $sql.=”where ‘”;   
      $sql.=$key;   
      $sql.=”‘='”;   
      $sql.=$val.”‘”;   
      }else 
      {   
      $sql.=”and ‘”;   
      $sql.=$key;   
      $sql.=”‘='”;   
      $sql.=$val.”‘”;   
      }   
      $k++;   
      }   
       }else 
       {   
       $sql.=” where “.$cons;   
       }   
       }   
       return $sql;   
    }   

//each()的使用
$user=array(“id”=>1,”name”=>”zhangsan”,”age”=>10,”sex”=>”nan”);
$a=each($user);//Array ( [1] => 1 [value] => 1 [0] => id
[key] => id ) 暗中认可是首先个要素的值
print_r($a);
$b=each($user);
print_r($b);//Array ( [1] => zhangsan [value] => zhangsan
[0] => name [key] => name ) 每实践贰遍,向后遍历二个

3、在页面中点右下角的图标

 2if(!checkLogin())

    function toExtXml($table,$start=”0″,$limit=”10″,$cons=””)   
    {   
       $sql=$this->generateSql($table,$cons);   
       $totalNum=$this->findCount($sql);   
       $result=$this->findBySql($sql.” LIMIT “.$start.”
,”.$limit);   
       $resultNum = count($result);//当前结果数   
       header(“Content-Type: text/xml”);   
       $xml=”<?xml version=\”1.0\”  encoding=\”utf-8\”
?>\n”;   
       $xml.=”<xml>\n”;   
      
$xml.=”\t<totalCount>”.$totalNum.”</totalCount>\n”;   
       $xml.=”\t<items>\n”;   
       for($i=0;$i<$resultNum;$i++){   
       $xml.=”\t\t<item>\n”;   
       foreach($result[$i] as $key=>$val)   
      
$xml.=”\t\t\t<“.$key.”>”.$val.”</”.$key.”>\n”;   
       $xml.=”\t\t</item>\n”;   
       }   
        $xml.=”\t</items>\n”;   
        $xml.=”</xml>\n”;   
        return $xml;   
    }   

$c=each($user);
print_r($c);//Array ( [1] => 10 [value] => 10 [0] => age
[key] => age )
$d=each($user);
print_r($d);//Array ( [1] => nan [value] => nan [0] =>
sex [key] => sex )
$e=each($user);
var_dump($e);//bool(false) 当未有成分时,重返的值
//each()配合while遍历
$user=array(“id”=>1,”name”=>”zhangsan”,”age”=>10,”sex”=>”nan”);
while($arr=each($user))
{
//echo $arr[0].”====>”.$arr[1].”<br>”;//通过0,1 来显示
键(下标) 和 值
echo
$arr[“key”].”===>”.$arr[“value”].”<br>”;//通过key,value
来显示 键 值
}

 4858.com 3

 3             die(“<script>alert(‘尚未登录,请登陆’);window.location.
</script>”);
 4         if($_POST[‘submit’]){
 5             $user = M(‘User’);
 6             if($user->create()){
 7                 $res = $user->add();
 8                 if($res)
 9                     echo “<script>alert(‘插入成功’);</script>”;
10                 else
11                     echo “<script>alert(‘插入失利’);</script>”;
12             }else{
13                 echo $user->getError();
14             }
15         }
16         $this->display();
17     } 

    //输出word表格   
    function toWord($table,$mapping,$fileName)   
    {   
       header(‘Content-type: application/doc’);    
          header(‘Content-Disposition: attachment;
filename=”‘.$fileName.’.doc”‘);    
          echo ‘<html
xmlns:o=”urn:schemas-microsoft-com:office:office”   
           xmlns:w=”urn:schemas-microsoft-com:office:word”   
          
xmlns=”[url=;   
        <head>   
           <meta http-equiv=”Content-Type” content=”text/html;
charset=UTF-8″ />   
        <title>’.$fileName.'</title>   
        </head>   
        <body>’;    
        echo'<table border=1><tr>’;   
        if(is_array($mapping))   
        {   
          foreach($mapping as $key=>$val)   
       echo'<td>’.$val.'</td>’;   
        }   
        echo'</tr>’;   
        $results=$this->findBySql(‘select * from ‘.$table);   
        foreach($results as $result)   
        {   
          echo'<tr>’;   
          foreach($result as $key=>$val)   
       echo'<td>’.$val.'</td>’;   
       echo'</tr>’;   
        }   
        echo'</table>’;   
        echo'</body>’;   
        echo'</html>’;   
    }   

//list()函数的运用
list($name,$age,$sex)=array(“zhangsan”,10,”nnnnn”);
echo $name.”<br>”;
echo $age.”<br>”;
echo $sex.”<br>”;
//另一种选择方法
list(,,$sex)=array(“zhangsan”,10,”nnnnn”);
echo $sex.”<br>”;//只把性别转变为变量
//ip判断
$ip=”192.168.1.128″;
list(,,,$d)=explode(“.”,$ip);//explode代表用 . 来分隔,并赶回三个数组
echo $d;//取出128
//list()只可以接收索引数组的例子
$user=array(“id”=>1,”name”=>”zhangsan”,”age”=>10,”sex”=>”nan”);
list($key,$value)=each($user);//Array( [1]=>1 [0]=>id)
根据索引下标的逐个给list中的参数赋值,所以首先 0键 然后是 1值
echo $key.”—>”.$value;
//while list() each() 组合使用
$user=array(“id”=>1,”name”=>”zhangsan”,”age”=>10,”sex”=>”nan”);
while(list($key,$value)=each($user))
{
echo $key.”—>”.$value.”<br>”;
}

 

ThinkPHP提供了四个机动填写方法,create方法,通过动用这些艺术,tp能够自动将表单提交的多少中与数据表中字段名相相称的多寡自动填充中实例化的靶子中然后接纳tp提供的add方法插入数据库中。$user = M(‘User’)是对模型的便捷实例化,用M方法能够毫不预先定义model,与$model
= new Model();一个情趣。至于create方法能够行使$user->username =
$_POST[‘username’]如此的款式来张开填写。可是,create方法除了填充外还有可能会自动验证表单数据,能够相当大提升功效。那部分后头会涉及。

    function toExcel($table,$mapping,$fileName)   
    {   
      header(“Content-type:application/vnd.ms-excel”);   
         header(“Content-Disposition:filename=”.$fileName.”.xls”);   
      echo'<html xmlns:o=”urn:schemas-microsoft-com:office:office” 
           xmlns:x=”urn:schemas-microsoft-com:office:excel” 
          
xmlns=”[url=;   
           <head>   
           <meta http-equiv=”expires” content=”Mon, 06 Jan 1999
00:00:01 GMT”>   
           <meta http-equiv=Content-Type content=”text/html;
charset=iso-8859-1″>   
           <!–[if gte mso 9]><xml>   
           <x:ExcelWorkbook>   
               <x:ExcelWorksheets>   
                       <x:ExcelWorksheet>   
                           <x:Name></x:Name>   
                           <x:WorksheetOptions>   
                               <x:DisplayGridlines/>   
                           </x:WorksheetOptions>   
                       </x:ExcelWorksheet>   
               </x:ExcelWorksheets>   
           </x:ExcelWorkbook>   
           </xml><![endif]–>   
           </head>   
        <body link=blue vlink=purple leftmargin=0
topmargin=0>’;    
        echo'<table width=”100%” border=”0″ cellspacing=”0″
cellpadding=”0″>’;   
           echo'<tr>’;   
        if(is_array($mapping))   
        {   
          foreach($mapping as $key=>$val)   
       echo'<td>’.$val.'</td>’;   
        }   
        echo'</tr>’;   
        $results=$this->findBySql(‘select * from ‘.$table);   
        foreach($results as $result)   
        {   
          echo'<tr>’;   
          foreach($result as $key=>$val)   
       echo'<td>’.$val.'</td>’;   
       echo'</tr>’;   
        }   
        echo'</table>’;   
        echo'</body>’;   
        echo'</html>’;   
    }   

//多次循环往复只展现一遍的减轻方法
//使用数组的内部指针调整函数
//next(数组);数组指针移动到下贰个
//prev(数组);数组指针移动到上三个
//reset(数组);数组指针移动到第三个(复位)
//end(数组);数组指针移动到最后三个
//current(数组);获取当前成分的值,当前成分时指数组指针指向的成分。
//key(数组);获取当前成分的键值(下标)
$user=array(“id”=>1,”name”=>”zhangsan”,”age”=>10,”sex”=>”nan”);
while(list($key,$value)=each($user))
{
echo $key.”—>”.$value.”<br>”;
}
//在此地将数组指针移动到第贰个以下循环就会出口
//reset($user)
while(list($key,$value)=each($user))//因为each()到结尾三个回去false,所以循环直接跳出
{
echo $key.”—>”.$value.”<br>”;
}
while(list($key,$value)=each($user))//因为each()到结尾一个回来false,所以循环直接跳出
{
echo $key.”—>”.$value.”<br>”;
}


然后,UPDATE方法

    function Backup($table)   
    {   
      if(is_array ($table))   
      {   
       $str=””;   
       foreach($table as $tab)   
       $str.=$this->get_table_content($tab);   
       return $str;   
      }else{   
       return $this->get_table_content($table);   
      }   
    }   

echo current($user).”=====>”.key($user);
?>

 1 public function edit(){     //用户编辑
 2         if(!checkLogin())
 3             die(“<script>alert(‘尚未登入,请登陆’);window.location.
</script>”);
 4         $user = D(‘User’);
 5         $id = $_GET[‘id’];
 6         if($id){
 7             $userinfo = $user->select($id);
 8         }
 9         if(isset($_POST[‘submit’]) && !empty($_POST[‘submit’])){
10             if($user->create()){
11                 $user->where(“userid = $id”)->save();
12             }else{
13                 echo $user->getError();
14             }
15         }
16         $this->model = $userinfo[0];
17         $this->display(); 

    function Backuptofile($table,$file)   
    {   
      header(“Content-disposition:
filename=$file.sql”);//所保存的公文名   
      header(“Content-type: application/octetstream”);   
      header(“Pragma: no-cache”);   
      header(“Expires: 0”);   
      if(is_array ($table))   
      {   
       $str=””;   
       foreach($table as $tab)   
       $str.=$this->get_table_content($tab);   
       echo $str;   
      }else{   
       echo $this->get_table_content($table);   
      }   
    }   

您大概感兴趣的小说:

  • PHP
    页面编码注解方法详解(header或meta)
  • php学习笔记
    类的注明与目的实例化
  • php学习之 数组证明
  • PHP类的宣示与实例化及构造方法与析构方法详解
  • php类表明和php类使用方法言传身教分享
  • php学习笔记之 函数注明
  • PHP各版本中等高校函授数的品类注脚详解

18     }  

    function Restore($table,$file=””,$content=””)   
    {   
      //排除file,content都为空大概都不为空的动静   
      if(($file==””&&$content==””)||($file!=””&&$content!=””))   
      echo”参数错误”;   
      $this->truncate($table);   
      if($file!=””)   
      {   
       if($this->RestoreFromFile($file))   
       return true;   
       else 
       return false;   
      }   
      if($content!=””)   
      {   
       if($this->RestoreFromContent($content))   
       return true;   
       else 
       return false;   
      }   
    }   

本条格局与add方法一般,不过,预先会传播相关参数先经过select方法选出对应数据体今后view层,前面跟add原理同样

    //清空表,以便苏醒数据   
    function truncate($table)   
    {   
      if(is_array ($table))   
      {   
       $str=””;   
       foreach($table as $tab)   
       $this->execute(“TRUNCATE TABLE $tab”);   
      }else{   
       $this->execute(“TRUNCATE TABLE $table”);   
      }   
    }   

然后,READ操作

    function get_table_content($table)   
    {   
      $results=$this->findBySql(“select * from $table”);   
      $temp = “”;   
      $crlf=”<br>”;   
      foreach($results as $result)   
      {   

  1 public function index() {   //用户列表

       /*(“;  
      foreach($result as $key=>$val)  
      {  
       $schema_insert .= ” `”.$key.”`,”;  
      }  
      $schema_insert = ereg_replace(“,$”, “”, $schema_insert);  
      $schema_insert .= “)   
      */ 
      $schema_insert = “INSERT INTO  $table VALUES (“;   
      foreach($result as $key=>$val)   
      {   
       if($val != “”)   
       $schema_insert .= ” ‘”.addslashes($val).”‘,”;   
       else 
       $schema_insert .= “NULL,”;   
      }   
      $schema_insert = ereg_replace(“,$”, “”, $schema_insert);   
      $schema_insert .= “);$crlf”;   
      $temp = $temp.$schema_insert ;   
      }   
      return $temp;   
    }   

 2         if(!checkLogin())
 3             die(“<script>alert(‘尚未登入,请登入’);window.location.
</script>”);
 4         $user = D(‘User’);
 5         $fields = array(‘userid’, ‘username’, ‘nickname’, ‘password’);
 6         $map[‘active’] = array(‘eq’, 1);
 7         $userinfo = $user->field($fields)->where($map)->select();
 8         $this->userinfo = $userinfo;
 9         $this->display();
10     }

    function RestoreFromFile($file){   
      if (false !== ($fp = fopen($file, ‘r’))) {   
       $sql_queries = trim(fread($fp, filesize($file)));   
       $this->splitMySqlFile($pieces, $sql_queries);   
       foreach ($pieces as $query) {   
        if(!$this->execute(trim($query)))   
        return false;   
       }   
       return true;   
      }   
      return false;   
    }   

其一法子里应用了select方法,查询相应是php与数据库交互中用的最多的。tp的curd操作往往跟连贯操作相关联使用。常用的贯通操纵有where,table,田野先生,data,order,limit,page,group,having,join,district,lock等,使用这几个主意的本来面目就是借助sql语句。

    function RestoreFromContent($content)   
    {   
      $content = trim($content);   
      $this->splitMySqlFile($pieces, $content);   
      foreach ($pieces as $query) {   
       if(!$this->execute(trim($query)))   
       return false;   
      }   
      return true;   
    }   

最后,DELETE操作。

    function splitMySqlFile(&$ret, $sql)   
    {   
      $sql= trim($sql);   
      $sql=split(‘;’,$sql);   
      $arr=array();   
      foreach($sql as $sq)   
      {   
        if($sq!=””);   
        $arr[]=$sq;   
      }   
      $ret=$arr;   
      return true;   
    }   
}    

 1 public function del() {     //用户删除

$db=new db();   

 2         if(!checkLogin())
 3             die(“<script>alert(‘尚未登入,请登陆’);window.location.
</script>”);
 4         $user = D(‘User’);
 5         $id = $_GET[‘id’];
 6         if($id){
 7             $user->delete($id);
 8             echo “<script>alert(‘删除成功’);window.location.
</script>”;
 9         }
10     }

// 生成 word    
//$map=array(‘No’,’Name’,’Email’,’Age’);   
//echo  $db->toWord(‘test’,$map,’档案’);   

 删除操作正是把参数字传送递过来然后实践delete操作。跟原生的php同样,删除操作时数据库操作中须要非常小心的。

// 生成 Excel    
//$map=array(‘No’,’Name’,’Email’,’Age’);   
//echo  $db->toExcel(‘test’,$map,’档案’);   

 先简要的叙述一下curd的相干操作,那有些是tp来自php的基本功,依然在其实使用的时候才看得出她们的意思。

// 生成 Xml    
//echo  $db->toExtXml(‘test’,0,20);   


// 生成 Json    
//echo  $db->toExtJson(‘test’,0,20);   

//备份       
//echo $db->Backuptofile(‘test’,’backup’);    
?>

整表备份

复制代码 代码如下:

$link = mysql_connect(DB_HOST,DB_USER,DB_PASS);
$tables = mysql_list_tables(DB_NAME);
$cachetables = array(); $tableselected = array();
while ($table = mysql_fetch_row($tables))
{
   $cachetables[$table[0]] = $table[0];
   $tableselected[$table[0]] = 1;
}
$table = $cachetables;
$filename =  DB_NAME . “_” . date(“Y_m_d_H_i_s”) . “.sql”;
$path = “sql/” . $filename;
$filehandle = fopen($path, “w”);
$result = mysql_query(“SHOW tables”);
while ($currow = mysql_fetch_array($result))
{
   if (isset($table[$currow[0]]))
   {
     sqldumptable($currow[0], $filehandle);
     fwrite($filehandle, “\n\n\n”);
   }
}
fclose($filehandle);
$update_data = array(‘filename’ => $filename, ‘postdate’ =>
mktime());
$db->insert(‘backup_db’, $update_data);
// data dump functions
function sqldumptable($table, $fp = 0)
{
    $tabledump = “DROP TABLE IF EXISTS ” . $table . “;\n”;
    $result = mysql_fetch_array(mysql_query(“SHOW CREATE TABLE ” .
$table));
    //echo “SHOW CREATE TABLE $table”;
    $tabledump .= $result[1] . “;\r\n”;
    if ($fp) {
        fwrite($fp, $tabledump);
    } else {
        echo $tabledump;
    }
    // get data
    $rows = mysql_query(“SELECT * FROM ” . $table);
    // $numfields=$DB->num_fields($rows);
    $numfields = mysql_num_fields($rows);
    while ($row = mysql_fetch_array($rows)) {
        $tabledump = “INSERT INTO ” . $table . ” VALUES(“;
        $fieldcounter = -1;
        $firstfield = 1;
        // get each field’s data
        while (++$fieldcounter < $numfields) {
            if (!$firstfield) {
                $tabledump .= “, “;
            } else {
                $firstfield = 0;
            }
            if (!isset($row[$fieldcounter])) {
                $tabledump .= “NULL”;
            } else {
                $tabledump .= “‘” .
mysql_escape_string($row[$fieldcounter]) . “‘”;
            }
        }
4858.com ,        $tabledump .= “);\n”;
        if ($fp) {
            fwrite($fp, $tabledump);
        } else {
            echo $tabledump;
        }
    }
    mysql_free_result($rows);
}

导入数据库

复制代码 代码如下:

<?php
/************
*
PHP导入.sql文件
运转版本:php5,php4 使用的时候请采用
作者:panxp
邮件:coolpan123@gmail.com
*
*************/
    $file_dir = dirname(__FILE__);
    $file_name = “2010-05-09-bak.sql”;
    $conn = mysql_connect(DB_HOST,DB_USER,DB_PASS);
    mysql_select_db(DB_NAME, $conn);
    /** PHP5 版本 **/
    $get_sql_data = file_get_contents($file_name, $file_dir);
    /** 
    * PHP4 版本
    if(file_exists($file_dir.”/”.$file_name))
    {
        $get_sql_data = fopen($file_dir.”/”.$file_name,”r”);  
        if(!$get_sql_data)
        {
            echo “不能够展开文件”;
        }
        else
        {
            $get_sql_data = fread($get_sql_data, filesize
($file_dir.”/”.$file_name));
        }
    }
    ***/
    $explode = explode(“;”, $get_sql_data);
    $cnt = count($explode);
    for ($i=0; $i<$cnt; $i++)
    {
        $sql = $explode[$i];
        $result = mysql_query($sql);
        mysql_query(“set names ‘utf8′”);
        if ($result) {
            echo “成功:”.$i.”个查询<br>”;
        } else {
            echo “导入失利:”.mysql_error();
        }
    }
?>

你大概感兴趣的文章:

  • php中落实xml与mysql数据交互调换的秘诀
  • php与XML、XSLT、Mysql的三结合使用实现代码
  • PHP XML备份Mysql数据库
  • 用PHP实现XML备份Mysql数据库
  • 几个用来MySQL的PHP XML类
  • PHP深入分析xml格式数据工具类示例
  • PHP封装的XML轻松操作类完整实例
  • PHP基于DOMDocument深入分析和生成xml的秘技解析
  • PHP管理数组和XML之间的并行调换
  • php生成xml轻巧实例代码
  • PHP输出XML到页面包车型大巴3种办法详解
  • php完毕深入分析xml并生成sql语句的点子

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图
Copyright @ 2010-2019 美高梅手机版4858 版权所有