php与Redis分页程序代码

 更新时间:2016年11月25日 16:35  点击:2075
Redis在性能上比mysql好点之外但在数据操作上的复杂度我们觉得非常的麻烦,像分页这种做法感觉非常不好使。

用上redis之后速度上去的结果就是操作数据的复杂性了、分页有种脱了裤子放屁的感觉。但是也没有别的办法。代码如下

 

 代码如下 复制代码

<?php
$redis = new Redis;
$redis->connect('127.0.0.1',6379,0);

//数据库
$host='********';
$user='root';
$psd='****';
$dbname='ask';

 


$link = mysql_connect($host,$user,$psd);
mysql_select_db($dbname,$link);
mysql_query("set names utf8");

 


$SQL = "SELECT * FROM question LIMIT 100";
$query = mysql_query($SQL);
$questionName = 'questionName';
while($info = mysql_fetch_array($query)){
$list[] = $info;
$redisName = 'Question_id_'.$info['id'];
$redis->hMset($redisName, $info);
$redis->zAdd($questionName,$info['id'],$info['id']);
$i++;
}
$range = $redis->zRevRange($questionName,0,10); //分页用到的主要函数
foreach($range as $qid){
$pageList[] = $redis->hGetAll('Question_id_'.$qid);
}
print_r($pageList);
?>

 
只是在做例子的时候随便敲敲、完全没有代码规范。请自己封装 基本用上的方法就是Reids的 hMset(),zAdd(), hGetAll(),zRevRange();如有不明白可以查看redis手册,或者与松林讨论。

在php中操作mysql数据库的方法有常用的三种,我们使用最多的估计是mysql或mysqli当然还有一个pdo_mysql了,下面整理了一些例子给各位参考

一.mysql数据库

 代码如下 复制代码

<?php
$conn=mysql_connect("localhost", "root", "123456") or die("数据库连接失败");
mysql_select_db("test") or die("选择数据库失败");;
$sql="select * from user";
$data=mysql_query($sql);
echo '<table border="1" align="center" width="800">'
while($row=mysql_fetch_assoc($result)){
echo '<tr>';
foreach($row as $col){
echo '<td>'.$col.'</td>';
}
echo '</tr>';
};
echo '</table>';
mysql_close();

补充

 代码如下 复制代码

 // 从表中提取信息的sql语句
$strsql="SELECT * FROM `gbook`";
// 执行sql查询
$result=mysql_db_query($mysql_database, $strsql, $conn);
// 获取查询结果
$row=mysql_fetch_row($result);

 
echo '<font face="verdana">';
echo '<table border="1" cellpadding="1" cellspacing="2">';

// 显示字段名称
echo "</b><tr></b>";
for ($i=0; $i<mysql_num_fields($result); $i++)
{
  echo '<td bgcolor="#000F00"><b>'.
  mysql_field_name($result, $i);
  echo "</b></td></b>";
}
echo "</tr></b>";
// 定位到第一条记录
mysql_data_seek($result, 0);
// 循环取出记录
while ($row=mysql_fetch_row($result))
{
  echo "<tr></b>";
  for ($i=0; $i<mysql_num_fields($result); $i++ )
  {
echo '<td bgcolor="#00FF00">';
echo $row[$i];
echo '</td>';
  }
  echo "</tr></b>";
}
  
echo "</table></b>";
echo "</font>";
// 释放资源
mysql_free_result($result);
// 关闭连接
mysql_close($conn); 

二.pdo_mysql(推荐)

连接:

 代码如下 复制代码


$dsn = "mysql:host=localhost;dbname=test";
$username = 'root';
$password = '123456';
$options = array(
   PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8',
);

$pdo = new PDO($dsn, $username, $password, $options);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
增:

方法1: 绑定关联数组

$str=$pdo->prepare("INSERT INTO `user` (`username`, `password`) VALUES (:username,:password)");
$str->execute(array(":username"=>"test", ":password"=>"passwd"));

方法2: 绑定索引数组


$str=$pdo->prepare("INSERT INTO `user` (`username`, `password`) VALUES (?,?)");
$str->execute(array("test", "passwd"));
删:


$str=$pdo->prepare("delete from user where id > 3");
$str->execute();

改:

$str=$pdo->prepare("UPDATE `user` SET username=:username,password=:password where id=:id");
$str->execute(array(":username"=>"test", ":password"=>"passwd", ":id"=>"3"));
查:
方法1: 单个取出,循环遍历,返回到数组

$str=$pdo->prepare("select * from user where id > :id  order by id");
$str->execute(array(":id"=>2));
$str->setFetchMode(PDO::FETCH_ASSOC);
//共三种:1.PDO::FETCH_BOTH(默认)  2.FETCH_ASSOC  3.FTECH_NUM
 
while($data=$str->fetch()){
print_r($data);
echo '<br>';
}

方法2: 全部取出,返回到二维数组


$str=$pdo->prepare("select * from user order by fid");
$str->execute();
$data=$str->fetchAll(PDO::FETCH_NUM);
print_r($data);

方法3:单个取出,循环遍历,绑定字段名到变量


$str=$pdo->prepare("select fid,username,password from user order by id");
$str->execute();
 
$str->bindColumn("id",$id);
$str->bindColumn("username",$username);
$str->bindColumn(3,$password);
 
while($str->fetch()){
echo "$id | $username | $password <br>";
}
echo "总记录数:".$str->rowCount()."<br>";
echo "总字段数:".$str->columnCount()."<br>";


二.mysqli

 代码如下 复制代码

(用mysqli链接MYSQL数据库)
requery_once("config.ini.php");
$mysqliObj = new mysqli($dbhost,$dbuser,$dbpwd,$dbname);
if(mysqli_connect_errno()){
 echo "连接失败".mysqli_connect_error();
 exit();
}
$mysqliObj->query("set name $charName");

(其他操作)
 
查询
-----------------------------------------------------
(单条查询)
$sql = "drop table  if exists user;";
$mysqliObj->query($sql);
 
(多条查询)
$musqliObj->multip_query($sql)
 
 
 
返回执行$sql受影响的行数()
----------------------------------------------------
if($mysqliObj->query($sql))
echo $mysqliObj->affected_rows;
 
insert 插入时,返回插入的id (很有用)
---------------------------------------------------
 $num = $mysqliObj->insert_id;

<?php
$mysqli=new mysqli("localhost", "root", "123456", "test");
$sql="select * from user  order by id";
$result=$mysqli->query($sql);
echo '<table align="center" border="1" width="800">';
while($row=$result->fetch_assoc()){
echo '<tr>';
foreach($row as $col){
echo '<td>'.$col.'</td>';
}
echo '</tr>';
}
echo '</table>';
$mysqli->close();


三种处理查询结果
-------------------------------------------------------
 

 代码如下 复制代码
$sql = "select * from user";
 $result = $mysqli->query($sql);
 
(1)fetch_row()   返回索引数组
fetch_row()
while(list($id,$name,$pwd)=$result->fetch_row()){
echo "id: ".$id." name:".$name."  pwd:".$pwd."<br>";
 
}
(2)fetch_assoc()  返回关联数组
fetch_assoc()
while ($row = $result->fetch_assoc()){
 echo "id:".$row["userId"]." name:".$row["userName"]."  pwd:".$row["password"]."<br>";
}
 
(3)fetch_object()返回对象
while($row = $result->fetch_object()){
echo "id:".$row->userId." name:".$row->uerName."  pwd:".$row->password."<br>";
 
}
php有强大的功能不但可以支持mysql,mssql,mysqli之个我们还可以与oracle数据连接哦,要让php支持oracle非常的简单我们只要把php.ini中的;extention = php_oci8.dll分号去掉即可。

记php支持oracle连接函数

php.ini文件中的配置,去掉  ;extention = php_oci8.dll,去掉前面的分号
重启apache就可以了,
如果不行,我们再把php目录中的php_oci8.dll拷到windows系统的system32下面去吧。
oracle数据库建立链接

 代码如下 复制代码

1.$conn = oci_connect('username','password',"(DEscriptION=(ADDRESS=(PROTOCOL =TCP)(HOST=192.168.1.100)(PORT = 1521))(CONNECT_DATA =(SID=test)))");

2.$conn = oci_connect('username','password','192.168.1.100/test');

3.Oracle 连接方法:

set adocon=Server.Createobject("adodb.connection")
adocon.open"Driver={microsoft odbc for oracle};server=oraclesever.world;uid=admin;pwd=pass;"

4.Oracle OLE DB 连接方法:

set adocon=Server.Createobject("adodb.connection")
adocon.open"Provider=OraOLEDB.Oracle;data source=dbname;user id=admin;password=pass;"

有的时候第一种方式不行,使用第二种,里面的几个参数分别是用户名、密码、oracle服务地址,其中test是服务名。

 代码如下 复制代码

$sql = "select * from table_exmaple"
$ora_test = oci_parse($conn,$sql);  //编译sql语句
oci_execute($ora_test,OCI_DEFAULT);  //执行
while($r=oci_fetch_row($ora_test))  //取回结果
{
echo $ora_test[0];
echo "<BR>"; 
}

看个完整的例子

如果PHP版本>5.0,那么使用下面的函数

oci_connect ( username, password , dbname )

例子:

 代码如下 复制代码

<?php

$conn = oci_connect('hr', 'hr', 'orcl'); // 建立连接

if (!$conn) {

$e = oci_error();

print htmlentities($e['message']);

exit;

}

$query = 'SELECT * FROM DEPARTMENTS'; // 查询语句

$stid = oci_parse($conn, $query); // 配置SQL语句,准备执行

if (!$stid) {

$e = oci_error($conn);

print htmlentities($e['message']);

exit;

}

$r = oci_execute($stid, OCI_DEFAULT); // 执行SQL。OCI_DEFAULT表示不要自动commit

if(!$r) {

$e = oci_error($stid);

echo htmlentities($e['message']);

exit;

}

// 打印执行结果

print '<table border="1">';

while($row = oci_fetch_array($stid, OCI_RETURN_NULLS)) {

print '<tr>';

foreach($row as $item) {

print '<td>'.($item?htmlentities($item):' ').'</td>';

}

print '</tr>';

}

print '</table>';

oci_close($conn);

?>

这是一个非常简单的利用php来备份mysql数据库的类文件,我们只要简单的在dbmange中配置好连接地址用户名与数据库即可,下面我们一起来看这个例子。
 代码如下 复制代码

<?php 
/**
 * 创建时间: 2012年5月21日
 *
 * 说明:分卷文件是以_v1.sql为结尾(20120522021241_all_v1.sql)
 * 功能:实现mysql数据库分卷备份,选择表进行备份,实现单个sql文件及分卷sql导入
 * 使用方法:
 *
 * ------1. 数据库备份(导出)------------------------------------------------------------
//分别是主机,用户名,密码,数据库名,数据库编码
$db = new DBManage ( 'localhost', 'root', 'root', 'test', 'utf8' );
// 参数:备份哪个表(可选),备份目录(可选,默认为backup),分卷大小(可选,默认2000,即2M)
$db->backup ();
 * ------2. 数据库恢复(导入)------------------------------------------------------------
//分别是主机,用户名,密码,数据库名,数据库编码
$db = new DBManage ( 'localhost', 'root', 'root', 'test', 'utf8' );
//参数:sql文件
$db->restore ( './backup/20120516211738_all_v1.sql');
 *----------------------------------------------------------------------
 */
class DBManage 

    var $db; // 数据库连接 
    var $database; // 所用数据库 
    var $sqldir; // 数据库备份文件夹 
    var $record; 
    // 换行符 
    private $ds = "n"; 
    // 存储SQL的变量 
    public $sqlContent = ""; 
    // 每条sql语句的结尾符 
    public $sqlEnd = ";"; 
    /**
     * 初始化
     *
     * @param string $host
     * @param string $username
     * @param string $password
     * @param string $thisatabase
     * @param string $charset
     */
    function __construct($host = 'localhost', $username = 'root', $password = '', $thisatabase = 'test', $charset = 'utf8') 
    { 
        $this->host = $host; 
        $this->username = $username; 
        $this->password = $password; 
        $this->database = $thisatabase; 
        $this->charset = $charset; 
        // 连接数据库 
        $this->db = mysql_connect ( $this->host, $this->username, $this->password ) or die ( "数据库连接失败." ); 
        // 选择使用哪个数据库 
        mysql_select_db ( $this->database, $this->db ) or die ( "无法打开数据库" ); 
        // 数据库编码方式 
        mysql_query ( 'SET NAMES ' . $this->charset, $this->db ); 
    } 
  
    /*
      * ------------------------------------------数据库备份start----------------------------------------------------------
      */
  
    /**
     * 数据库备份
     * 参数:备份哪个表(可选),备份目录(可选,默认为backup),分卷大小(可选,默认2000,即2M)
     *
     * @param $string $dir
     * @param int $size
     * @param $string $tablename
     */
    function backup($tablename = '', $dir = '', $size = 2000) 
    { 
        //$dir = $dir ? $dir : 'backup/'; 
        //$size = $size ? $size : 2000; 
        $sql = ''; 
        // 只备份某个表 
        if (! empty ( $tablename )) 
        { 
            echo '正在备份表' . $tablename . '<br />'; 
            // 插入dump信息 
            $sql = $this->_retrieve(); 
            // 插入表结构信息 
            $sql .= $this->_insert_table_structure ( $tablename ); 
            // 插入数据 
            $data = mysql_query ( "select * from " . $tablename ); 
            // 文件名前面部分 
            $filename = date ( 'YmdHis' ) . "_" . $tablename; 
            // 字段数量 
            $num_fields = mysql_num_fields ( $data ); 
            // 第几分卷 
            $p = 1; 
            // 循环每条记录 
            while ( $record = mysql_fetch_array ( $data ) ) 
            { 
                // 单条记录 
                $sql .= $this->_insert_record ( $tablename, $num_fields, $record ); 
                // 如果大于分卷大小,则写入文件 
                if (strlen ( $sql ) >= $size * 1000) 
                { 
                    $file = $filename . "_v" . $p . ".sql"; 
                    if ($this->_write_file ( $sql, $file, $dir )) 
                    { 
                        echo "表-" . $tablename . "-卷-" . $p . "-数据备份完成,生成备份文件 <span style='color:#f00;'>$dir$filename</span><br />"; 
                    } 
                    else
                    { 
                        echo "备份表-" . $tablename . "-失败<br />"; 
                    } 
                    // 下一个分卷 
                    $p ++; 
                    // 重置$sql变量为空,重新计算该变量大小 
                    $sql = ""; 
                } 
            } 
            // sql大小不够分卷大小 
            if ($sql != "") 
            { 
                $filename .= "_v" . $p . ".sql"; 
                if ($this->_write_file ( $sql, $filename, $dir )) 
                { 
                    echo "表-" . $tablename . "-卷-" . $p . "-数据备份完成,生成备份文件 <span style='color:#f00;'>$dir$filename</span><br />"; 
                } 
                else
                { 
                    echo "备份卷-" . $p . "-失败<br />"; 
                } 
            } 
        } 
        else
        { // 备份全部表 
            if ($tables = mysql_query ( "show table status from " . $this->database )) 
            { 
                echo "读取数据库结构成功!<br />"; 
            } 
            else
            { 
                exit ( "读取数据库结构成功!<br />" ); 
            } 
            // 插入dump信息 
            $sql .= $this->_retrieve(); 
            // 文件名前面部分 
            $filename = date ( 'YmdHis' ) . "_all"; 
            // 查出所有表 
            $tables = mysql_query ( 'SHOW TABLES' ); 
            // 第几分卷 
            $p = 1; 
            // 循环所有表 
            while ( $table = mysql_fetch_array ( $tables ) ) 
            { 
                // 获取表名 
                $tablename = $table [0]; 
                // 获取表结构 
                $sql .= $this->_insert_table_structure ( $tablename ); 
                $data = mysql_query ( "select * from " . $tablename ); 
                $num_fields = mysql_num_fields ( $data ); 
  
                // 循环每条记录 
                while ( $record = mysql_fetch_array ( $data ) ) 
                { 
                    // 单条记录 
                    $sql .= $this->_insert_record ( $tablename, $num_fields, $record ); 
                    // 如果大于分卷大小,则写入文件 
                    if (strlen ( $sql ) >= $size * 1000) 
                    { 
  
                        $file = $filename . "_v" . $p . ".sql"; 
                        // 写入文件 
                        if ($this->_write_file ( $sql, $file, $dir )) 
                        { 
                            echo "-卷-" . $p . "-数据备份完成,生成备份文件<span style='color:#f00;'>$dir$file</span><br />"; 
                        } 
                        else
                        { 
                            echo "备份卷-" . $p . "-失败<br />"; 
                        } 
                        // 下一个分卷 
                        $p ++; 
                        // 重置$sql变量为空,重新计算该变量大小 
                        $sql = ""; 
                    } 
                } 
            } 
            // sql大小不够分卷大小 
            if ($sql != "") 
            { 
                $filename .= "_v" . $p . ".sql"; 
                if ($this->_write_file ( $sql, $filename, $dir )) 
                { 
                    echo "-卷-" . $p . "-数据备份完成,生成备份文件 <span style='color:#f00;'>$dir$filename<br />"; 
                } 
                else
                { 
                    echo "备份卷-" . $p . "-失败<br />"; 
                } 
            } 
        } 
    } 
  
    /**
     * 插入数据库备份基础信息
     *
     * @return string
     */
    private function _retrieve() { 
        $value = ''; 
        $value .= '--' . $this->ds; 
        $value .= '-- MySQL database dump' . $this->ds; 
        $value .= '-- Created by DBManage class, Power By yanue. ' . $this->ds; 
        $value .= '-- http://yanue.net ' . $this->ds; 
        $value .= '--' . $this->ds; 
        $value .= '-- 主机: ' . $this->host . $this->ds; 
        $value .= '-- 生成日期: ' . date ( 'Y' ) . ' 年  ' . date ( 'm' ) . ' 月 ' . date ( 'd' ) . ' 日 ' . date ( 'H:i' ) . $this->ds; 
        $value .= '-- MySQL版本: ' . mysql_get_server_info () . $this->ds; 
        $value .= '-- PHP 版本: ' . phpversion () . $this->ds; 
        $value .= $this->ds; 
        $value .= '--' . $this->ds; 
        $value .= '-- 数据库: `' . $this->database . '`' . $this->ds; 
        $value .= '--' . $this->ds . $this->ds; 
        $value .= '-- -------------------------------------------------------'; 
        $value .= $this->ds . $this->ds; 
        return $value; 
    } 
  
    /**
     * 插入表结构
     *
     * @param unknown_type $table
     * @return string
     */
    private function _insert_table_structure($table) { 
        $sql = ''; 
        $sql .= "--" . $this->ds; 
        $sql .= "-- 表的结构" . $table . $this->ds; 
        $sql .= "--" . $this->ds . $this->ds; 
  
        // 如果存在则删除表 
        $sql .= "DROP TABLE IF EXISTS `" . $table . '`' . $this->sqlEnd . $this->ds; 
        // 获取详细表信息 
        $res = mysql_query ( 'SHOW CREATE TABLE `' . $table . '`' ); 
        $row = mysql_fetch_array ( $res ); 
        $sql .= $row [1]; 
        $sql .= $this->sqlEnd . $this->ds; 
        // 加上 
        $sql .= $this->ds; 
        $sql .= "--" . $this->ds; 
        $sql .= "-- 转存表中的数据 " . $table . $this->ds; 
        $sql .= "--" . $this->ds; 
        $sql .= $this->ds; 
        return $sql; 
    } 
  
    /**
     * 插入单条记录
     *
     * @param string $table
     * @param int $num_fields
     * @param array $record
     * @return string
     */
    private function _insert_record($table, $num_fields, $record) { 
        // sql字段逗号分割 
        $insert = $comma = ""; 
        $insert .= "INSERT INTO `" . $table . "` VALUES("; 
        // 循环每个子段下面的内容 
        for($i = 0; $i < $num_fields; $i ++) { 
            $insert .= ($comma . "'" .mysql_real_escape_string ( $record [$i] ) . "'"); 
            $comma = ","; 
        } 
        $insert .= ");" . $this->ds; 
        return $insert; 
    } 
  
    /**
     * 写入文件
     *
     * @param string $sql
     * @param string $filename
     * @param string $dir
     * @return boolean
     */
    private function _write_file($sql, $filename, $dir) { 
        $dir = $dir ? $dir : './backup/'; 
        // 不存在文件夹则创建 
        if (! file_exists ( $dir )) { 
            mkdir ( $dir ); 
        } 
        $re = true; 
        if (! @$fp = fopen ( $dir . $filename, "w+" )) { 
            $re = false; 
            echo "打开文件失败!"; 
        } 
        if (! @fwrite ( $fp, $sql )) { 
            $re = false; 
            echo "写入文件失败,请文件是否可写"; 
        } 
        if (! @fclose ( $fp )) { 
            $re = false; 
            echo "关闭文件失败!"; 
        } 
        return $re; 
    } 
  
    /*
      *
      * -------------------------------上:数据库导出-----------分割线----------下:数据库导入--------------------------------
      */
  
    /**
     * 导入备份数据
     * 说明:分卷文件格式20120516211738_all_v1.sql
     * 参数:文件路径(必填)
     *
     * @param string $sqlfile
     */
    function restore($sqlfile) 
    { 
        // 检测文件是否存在 
        if (! file_exists ( $sqlfile )) 
        { 
            exit ( "文件不存在!请检查" ); 
        } 
        $this->lock ( $this->database ); 
        // 获取数据库存储位置 
        $sqlpath = pathinfo ( $sqlfile ); 
        $this->sqldir = $sqlpath ['dirname']; 
        // 检测是否包含分卷,将类似20120516211738_all_v1.sql从_v分开,有则说明有分卷 
        $volume = explode ( "_v", $sqlfile ); 
        $volume_path = $volume [0]; 
        echo "请勿刷新及关闭浏览器以防止程序被中止,如有不慎!将导致数据库结构受损<br />"; 
        echo "正在导入备份数据,请稍等!<br />"; 
        if (empty ( $volume [1] )) 
        { 
            echo "正在导入sql:<span style='color:#f00;'>" . $sqlfile . '</span><br />'; 
            // 没有分卷 
            if ($this->_import ( $sqlfile )) { 
                echo "数据库导入成功!"; 
            } 
            else
            { 
                exit ( '数据库导入失败!' ); 
            } 
        } 
        else
        { 
            //$volume_id = array(); 
            // 存在分卷,则获取当前是第几分卷,循环执行余下分卷 
            $volume_id = explode ( ".sq", $volume [1] ); 
            // 当前分卷为$volume_id 
            $volume_id = intval ( $volume_id [0] ); 
            while ( $volume_id ) 
            { 
                $tmpfile = $volume_path . "_v" . $volume_id . ".sql"; 
                // 存在其他分卷,继续执行 
                if (file_exists ( $tmpfile )) { 
                    // 执行导入方法 
                    echo "正在导入分卷<span style='color:#f00;'>" . $tmpfile . '</span><br />'; 
                    if ($this->_import ( $tmpfile )) 
                    { 
  
                    } 
                    else
                    { 
                        exit ( "导入分卷<span style='color:#f00;'>" . $tmpfile . '</span>失败!可能是数据库结构已损坏!请尝试从分卷1开始导入' ); 
                    } 
                } 
                else
                { 
                    echo "此分卷备份全部导入成功!<br />"; 
                    return; 
                } 
                $volume_id++; 
            } 
        } 
    } 
  
    /**
     * 将sql导入到数据库(普通导入)
     *
     * @param string $sqlfile
     * @return boolean
     */
    private function _import($sqlfile) { 
        // sql文件包含的sql语句数组 
        $sqls = array (); 
        $f = fopen ( $sqlfile, "rb" ); 
        // 创建表缓冲变量 
        $create = ''; 
        while ( ! feof ( $f ) ) { 
            // 读取每一行sql 
            $line = fgets ( $f ); 
            // 如果包含'-- '等注释,或为空白行,则跳过 
            if (trim ( $line ) == '' || preg_match ( '/--*?/', $line, $match )) { 
                continue; 
            } 
            // 如果结尾包含';'(即为一个完整的sql语句,这里是插入语句),并且不包含'ENGINE='(即创建表的最后一句), 
            if (! preg_match ( '/;/', $line, $match ) || preg_match ( '/ENGINE=/', $line, $match )) { 
                // 将本次sql语句与创建表sql连接存起来 
                $create .= $line; 
                // 如果包含了创建表的最后一句 
                if (preg_match ( '/ENGINE=/', $create, $match )) { 
                    // 则将其合并到sql数组 
                    $sqls [] = $create; 
                    // 清空当前,准备下一个表的创建 
                    $create = ''; 
                } 
                // 跳过本次 
                continue; 
            } 
            $sqls [] = $line; 
        } 
        fclose ( $f ); 
        // 循环sql语句数组,分别执行 
        foreach ( $sqls as $sql ) { 
            str_replace ( "n", "", $sql ); 
            if (! mysql_query ( trim ( $sql ) )) { 
                echo mysql_error (); 
                return false; 
            } 
        } 
        return true; 
    } 
  
    /*
      * -------------------------------数据库导入end---------------------------------
      */
  
    // 关闭数据库连接 
    private function close() { 
        mysql_close ( $this->db ); 
    } 
  
    // 锁定数据库,以免备份或导入时出错 
    private function lock($tablename, $op = "WRITE") { 
        if (mysql_query ( "lock tables " . $tablename . " " . $op )) 
            return true; 
        else
            return false; 
    } 
  
    // 解锁 
    private function unlock() { 
        if (mysql_query ( "unlock tables" )) 
            return true; 
        else
            return false; 
    } 
  
    // 析构 
    function __destruct() { 
        mysql_query ( "unlock tables", $this->db ); 
        mysql_close ( $this->db ); 
    } 
}
 
$db = new DBManage ( 'localhost', 'root', '', 'tao', 'gbk' );
//$db->backup ('tao_admin'); 
$db->restore ( './backup/20140228222713_tao_admin_v1.sql');
php Mysql类一般都包括了几乎我们常用的数据库操作方法,这里只提供了查询 删除 更新三种操作,算不是很全只是一个简单的数据库查询类了。
 代码如下 复制代码
class mysql
{
    private $host;
    private $user;
    private $pass;
    private $database;
    private $charset;
    function __construct($host,$user,$pass,$database,$charset)
    {
        $this--->host=$host;
        $this->user=$user;
        $this->pass=$pass;
        $this->database=$database;
        $this->charset=$charset;
        $this->connect();
    }
    private function connect()//连接函数
    {
        mysql_connect($this->host,$this->user,$this->pass) or die ("连接数据库服务器失败!");
        mysql_select_db($this->database) or die ("连接数据库失败!");
        mysql_query("set names $this->charset");       
    }
    function select($sql,$tab,$col,$value)//选择函数
    {
        $select=mysql_query("select $sql from $tab where $col=$value");
        $row=mysql_fetch_array($select);
        return $row;
    }
    function insert($tab,$col,$value)//插入数据函数
    {
        mysql_query("INSERT INTO $tab($col)values($value)");
    }
    function update($tab,$col,$new_value,$colm,$value)//更新数据函数
    {
        mysql_query("UPDATE $tab SET $col=$new_value where $colm=$value");   
    }
    function delete($tab,$col,$value)//删除数据函数
    {
        mysql_query("DELETE FROM $tab where $col=$value");
        }
    function close()//关闭连接函数
    {
    mysql_close();
 
    }
}
//$mysql=new mysql("127.0.0.1","root","120360150","test","gbk");连接数据库
//$sql=$mysql->select("*","admin","id","3");//选择数据
//print_r($sql);//打印返回的数组
//$mysql->insert("admin","user_name,user_pass","'123','123'");插入数据
//$mysql->update("admin","user_pass","22","id","3");更新数据
//$mysql->delete("admin","id","4");删除数据
//$mysql->close();关闭连接
?>
[!--infotagslink--]

相关文章

  • php KindEditor文章内分页的实例方法

    我们这里介绍php与KindEditor编辑器使用时如何利用KindEditor编辑器的分页功能实现文章内容分页,KindEditor编辑器在我们点击分页时会插入代码,我们只要以它为分切符,就...2016-11-25
  • C#开发Windows窗体应用程序的简单操作步骤

    这篇文章主要介绍了C#开发Windows窗体应用程序的简单操作步骤,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-04-12
  • 自己动手写的jquery分页控件(非常简单实用)

    最近接了一个项目,其中有需求要用到jquery分页控件,上网也找到了需要分页控件,各种写法各种用法,都是很复杂,最终决定自己动手写一个jquery分页控件,全当是练练手了。写的不好,还请见谅,本分页控件在chrome测试过,其他的兼容性...2015-10-30
  • C++调用C#的DLL程序实现方法

    本文通过例子,讲述了C++调用C#的DLL程序的方法,作出了以下总结,下面就让我们一起来学习吧。...2020-06-25
  • 不打开网页直接查看网站的源代码

      有一种方法,可以不打开网站而直接查看到这个网站的源代码..   这样可以有效地防止误入恶意网站...   在浏览器地址栏输入:   view-source:http://...2016-09-20
  • php 调用goolge地图代码

    <?php require('path.inc.php'); header('content-Type: text/html; charset=utf-8'); $borough_id = intval($_GET['id']); if(!$borough_id){ echo ' ...2016-11-25
  • JS基于Mootools实现的个性菜单效果代码

    本文实例讲述了JS基于Mootools实现的个性菜单效果代码。分享给大家供大家参考,具体如下:这里演示基于Mootools做的带动画的垂直型菜单,是一个初学者写的,用来学习Mootools的使用有帮助,下载时请注意要将外部引用的mootools...2015-10-23
  • C#使用Process类调用外部exe程序

    本文通过两个示例讲解了一下Process类调用外部应用程序的基本用法,并简单讲解了StartInfo属性,有需要的朋友可以参考一下。...2020-06-25
  • 微信小程序 页面传值详解

    这篇文章主要介绍了微信小程序 页面传值详解的相关资料,需要的朋友可以参考下...2017-03-13
  • JS+CSS实现分类动态选择及移动功能效果代码

    本文实例讲述了JS+CSS实现分类动态选择及移动功能效果代码。分享给大家供大家参考,具体如下:这是一个类似选项卡功能的选择插件,与普通的TAb区别是加入了动画效果,多用于商品类网站,用作商品分类功能,不过其它网站也可以用,...2015-10-21
  • JS实现自定义简单网页软键盘效果代码

    本文实例讲述了JS实现自定义简单网页软键盘效果。分享给大家供大家参考,具体如下:这是一款自定义的简单点的网页软键盘,没有使用任何控件,仅是为了练习JavaScript编写水平,安全性方面没有过多考虑,有顾虑的可以不用,目的是学...2015-11-08
  • jquery实现的伪分页效果代码

    本文实例讲述了jquery实现的伪分页效果代码。分享给大家供大家参考,具体如下:这里介绍的jquery伪分页效果,在火狐下表现完美,IE全系列下有些问题,引入了jQuery1.7.2插件,代码里有丰富的注释,相信对学习jQuery有不小的帮助,期...2015-10-30
  • php 取除连续空格与换行代码

    php 取除连续空格与换行代码,这些我们都用到str_replace与正则函数 第一种: $content=str_replace("n","",$content); echo $content; 第二种: $content=preg_replac...2016-11-25
  • php简单用户登陆程序代码

    php简单用户登陆程序代码 这些教程很对初学者来讲是很有用的哦,这款就下面这一点点代码了哦。 <center> <p>&nbsp;</p> <p>&nbsp;</p> <form name="form1...2016-11-25
  • PHP实现清除wordpress里恶意代码

    公司一些wordpress网站由于下载的插件存在恶意代码,导致整个服务器所有网站PHP文件都存在恶意代码,就写了个简单的脚本清除。恶意代码示例...2015-10-23
  • 使用GruntJS构建Web程序之构建篇

    大概有如下步骤 新建项目Bejs 新建文件package.json 新建文件Gruntfile.js 命令行执行grunt任务 一、新建项目Bejs源码放在src下,该目录有两个js文件,selector.js和ajax.js。编译后代码放在dest,这个grunt会...2014-06-07
  • js识别uc浏览器的代码

    其实挺简单的就是if(navigator.userAgent.indexOf('UCBrowser') > -1) {alert("uc浏览器");}else{//不是uc浏览器执行的操作}如果想测试某个浏览器的特征可以通过如下方法获取JS获取浏览器信息 浏览器代码名称:navigator...2015-11-08
  • JS实现双击屏幕滚动效果代码

    本文实例讲述了JS实现双击屏幕滚动效果代码。分享给大家供大家参考,具体如下:这里演示双击滚屏效果代码的实现方法,不知道有觉得有用处的没,现在网上还有很多还在用这个特效的呢,代码分享给大家吧。运行效果截图如下:在线演...2015-10-30
  • JS日期加减,日期运算代码

    一、日期减去天数等于第二个日期function cc(dd,dadd){//可以加上错误处理var a = new Date(dd)a = a.valueOf()a = a - dadd * 24 * 60 * 60 * 1000a = new Date(a)alert(a.getFullYear() + "年" + (a.getMonth() +...2015-11-08
  • uniapp微信小程序:key失效的解决方法

    这篇文章主要介绍了uniapp微信小程序:key失效的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-01-20