php数据库写入操作类

 更新时间:2016年11月25日 16:37  点击:1406

php教程数据库教程写入操作类

有三个类:

1 . 过滤输入(轻量级的)

class input_filter

负责将参数,如$_GET,$_POST 这些过滤

返回值类型为 数组,用作 made_sql 类的参数

2 . 转换成SQL语句

class made_sql

参数的类型为数组和表名(字符串),数组的键名为表的列名,值为插入值

返回值类型为 字符串 ,用作 mysql教程 ->query方法 的参数

3 . 数据库查询

class mysql 

用到了单列模式,用静态方法来获取对象,具体参看 instanceof操作符的作用

 


 1   class input_filter
 2   {
 3  
 4        private $input_all; // 要过滤的数组
 5        private $rustle;     // 过滤后的结果
 6       
 7       //构造函数 参数可以是$_GET or $_POST 这些
 8       public function __construct($input_C)
 9       {
10           if(is_array($input_C))
11                $this->input_all = $input_C ;
12           else
13                echo 'Parameter is not valid';
14          
15           //初始化,不然后面第一次合并数组PHP不知道这是什么类型     
16           $this->rustle = array(); 
17       }
18       
19       private function filter_arr()  // 主函数
20       {
21          
22           foreach ($this->input_all as  $key_input => $val_input)
23           {
24               //如果键名不是字符串,那么返回错误信息
25               // for key
26               if(!is_string($key_input))  // error
27                  {
28                    echo 'This key is not string';
29                    return false;
30                  }
31               // The # is mysql Note . 
32               $key_one = str_replace('#','',$key_input);
33               $key = htmlspecialchars($key_one,ENT_QUOTES,'UTF-8');
34               
35               // 我没找 # 的HTML转义符,所以用空代替
37               $val_one = str_replace('#','',$val_input);
38               // 这个函数只转化 < > ' "  ,还有个类似函数会转义所有符号
39               $val = htmlspecialchars($val_one,ENT_QUOTES,'UTF-8');
40              
41               // merger     
42               $rustle_one = array($key=>$val);
43               //合并数组
44               $this->rustle = array_merge($this->rustle,$rustle_one);
45           }
46          
47       }
48      
49       //这个函数有点多余,留下以后扩展用
50       public function get_filter_rustle()
51       {
52           $this->filter_arr();
53           return  $this->rustle ;
54       }
55
56   }

 

调用方法: 

  $filter = new filter_input($_GET) ; // or $_POST
  $input_data = $filter->get_filter();

 

 

转换成SQL语句:

 1   class madesql
 2   {
 3       private $Cnow_ary;   // type array  传入的参数
 4       private $Cname_str;
 5      
 6       private $insert_sql;  //最终的sql语句  string type
 7      
 8     
 9
10
11      
12       public function  __construct($Cary,$Cname)
13       {
14          //检查传入参数类型是否为数组
15          if (! is_array($Cary)) 
16              return false;
17          else
18              $this->Cnow_ary = $Cary;  // 写入的值
19       
20          $this->Cname_str = $Cname;  // 数据库表名称
21        

25       }
26      
27       private function setSql()  // 主函数 ,生产SQL语句
28       {
29  
30            foreach ( $this->Cnow_ary as  $key_ary => $val_ary )
31            {
32                $cols_sql = $cols_sql.','.$key_ary; //列名组合
33                $vals_sql = $vals_sql.', ''.$val_ary.''' ; //值 组合
34            }
35             // 因为前面foreach的算法有点问题,第一个字符是逗号
36             // 所以用sunstr_replace()删除 ,自第一位起(0),只替换一个字符(1)   
37             $cols_sql = substr_replace($vals_sql,'',0,1);  
38             $vals_sql = substr_replace($vals_sql,'',0,1);
39             
40             $this->insert_sql =
41             'INSERT INTO '.$this->Cname_str.' ( '
42                                .$cols_sql.' ) VALUES ( '.$vals_sql.' )'; // 语句成型
43       }
44       //扩展用
45       public function getSql()
46       {
47           $this->setSql();
48           return $this->insert_sql;
49       }
50      
51    }

 

 

3 . 数据库查询

数据库查询类是参照书上的单列模式(用静态方法获取对象,这样在一个脚本里只有一个数据库查询类的实例)

我想单例模式用于这个类还是有点用的

 1   class mysql
 2    {
 3        private $connect;
 4        static  $objectMysql; // 存放对象
 5       
 6        private function  __construct() 

 7        {   
 8           // 创建对象的时候这个构造函数会被调用,用来初始化
 9           $connect = mysql_connect('db address','password','dbname');
10           $this->db = mysql_select_db('db',$connect);   
11        }
12
13        public static function Mysql_object()
14        {   
15            //instanceof 操作符用于检查对象是否属于某个类或者接口的实例。我说的不是很规范...
16           //如果$objectMysql不是mysql(self)的实例,那么就创建一个
17            if(! self::$objectMysql instanceof self)
18                 self::$objectMysql = new mysql();
19
20            //这时候的$objectMysql就已经是一个对象
21            return self::$objectMysql;  
22        }
23        public function query($sql)
24        {
25            return mysql_query($sql,$this->db);
26        }
27 
28   }

 

 

 

All right ,归纳一下使用方法

 

 1   $filter = new filter_input($_GET) ; // or $_POST http://www.111cn.net
 2   $input_data = $filter->get_filter();
 3  
 4   $madeSql = new madesql($input_data,'tableName');
 5   $sql = $madeSql->getSql();
 6
 7   $mysql = mysql::Mysql_object() ;
 8   if( $mysql->query($sql) )
 9       echo 'Ok';
10   else
11       echo 'failure';

 

只需要这几行调用代码即可以完成写入数据库的操作

 

另外再说一下构造函数的私有公有问题,书上的mysql单例模式中构造函数是声明为了private ,而没有单例模式的类如此则会产生编译错误,即 PHP 不能创建一个对象 ,查了下。

原因在于创建对象往往在类外面进行,这样就产生了无法访问构造函数的问题。 而单列模式是在自身类中创建对象,因此访问private方法没有限制。

原先以为单例模式只是防止创建相同的对象,现在看来单例模式可以将构造函数封装起来,确实提高了安全性

pdo操作数据库教程入门教程

我们开始构造第一个PDO应用,建立一个pdo.php教程文件在Web文档目录下:
PDO功能确实强大,另外还有一些内容我没有讲到,比如绑定参数、预处理、存储过程、事务处理等等功能。另外还有不同数据扩 DSN的构造,Oracle数据库自己很多特殊的东西,都需要深入去学习理解,这篇文章就只是简单的描述了一些入门知识,算是对PDO一个简单的了解吧
<?php
 $dsn = "mysql教程:host=localhost;dbname=test";
 $db = new PDO($dsn, 'root', '');
 $count = $db->exec("INSERT INTO foo SET name = 'heiyeluren',gender='男',time=NOW()");
 echo $count;
 $db = null;
?>


  不明白啥意思,俺们来慢慢讲讲。这行:

$dsn = "mysql:host=localhost;dbname=test";


  就是构造我们的DSN(数据源),看看里面的信息包括:数据库类型是mysql,主机地址是localhost,数据库名称是test,就这么几个信息。不同数据库的数据源构造方式是不一样的。

$db = new PDO($dsn, 'root', '');


  初始化一个PDO对象,构造函数的参数第一个就是我们的数据源,第二个是连接数据库服务器的用户,第三个参数是密码。我们不能保证连接成功,后面我们会讲到异常情况,这里我们姑且认为它是连接成功的。

$count = $db->exec("INSERT INTO foo SET name = 'heiyeluren',gender='男',time=NOW()");
echo $count;


  调用我们连接成功的PDO对象来执行一个查询,这个查询是一个插入一条记录的操作,使用PDO::exec() 方法会返回一个影响记录的结果,所以我们输出这个结果。最后还是需要结束对象资源:

$db = null;


  默认这个不是长连接,如果需要数据库长连接,需要最后加一个参数:array(PDO::ATTR_PERSISTENT => true) 变成这样:

$db = new PDO($dsn, 'root', '', array(PDO::ATTR_PERSISTENT => true));


  一次操作就这么简单,也许跟以前的没有太大区别,跟ADOdb倒是有几分相似。
继续了解】

  如果我们想提取数据的话,那么就应该使用数据获取功能。(下面用到的$db都是上面已经连接好的对象)

<?php
 foreach($db->query("SELECT * FROM foo")){
  print_r($row);
 }
?>


  我们也可以使用这种获取方式:

<?php
 $rs = $db->query("SELECT * FROM foo");
 while($row = $rs->fetch()){
  print_r($row);
 }
?>


  如果想一次把数据都获取到数组里可以这样:

<?php
$rs = $db->query("SELECT * FROM foo");
$result_arr = $rs->fetchAll();
print_r($result_arr);
?>

Array
([0] => Array(
 [id] => 1
 [0] => 1
 [name] => heiyeluren
 [1] => heiyeluren
 [gender] => 男
 [2] => 男
 [time] => 2006-10-28 23:14:23
 [3] => 2006-10-28 23:14:23
)
}


  我们看里面的记录,数字索引和关联索引都有,浪费资源,我们只需要关联索引的:

<?php
$db->setAttribute(PDO::ATTR_CASE, PDO::CASE_UPPER);
$rs = $db->query("SELECT * FROM foo");
$rs->setFetchMode(PDO::FETCH_ASSOC);
$result_arr = $rs->fetchAll();
print_r($result_arr);
?>


  看上面的代码,setAttribute() 方法是设置部分属性,主要属性有:PDO::ATTR_CASE、PDO::ATTR_ERRMODE等等,我们这里需要设置的是 PDO::ATTR_CASE,就是我们使用关联索引获取数据集的时候,关联索引是大写还是小写,有几个选择:

  PDO::CASE_LOWER -- 强制列名是小写
  PDO::CASE_NATURAL -- 列名按照原始的方式
  PDO::CASE_UPPER -- 强制列名为大写

  我们使用setFetchMode方法来设置获取结果集的返回值的类型,同样类型还有:

  PDO::FETCH_ASSOC -- 关联数组形式
  PDO::FETCH_NUM -- 数字索引数组形式
  PDO::FETCH_BOTH -- 两者数组形式都有,这是缺省的
  PDO::FETCH_OBJ -- 按照对象的形式,类似于以前的 mysql_fetch_object()

  当然,一般情况下我们是使用PDO::FETCH_ASSOC,具体使用什么,按照你自己的需要,其他获取类型参考手册。

  除了上面这种获取数据的方式,还有这种:

<?php
$rs = $db->prepare("SELECT * FROM foo");
$rs->execute();
while($row = $rs->fetch()){
 print_r($row);
}
?>


  其实差不多啦。如果你想获取指定记录里一个字段结果的话,可以使用 PDOStatement::fetchColumn():

<?php
$rs = $db->query("SELECT COUNT(*) FROM foo");
$col = $rs->fetchColumn();
echo $col;
?>


  一般使用fetchColumn()来进行count统计或者某些只需要单字段的记录很好操作。

  简单的总结一下上面的操作:

  查询操作主要是PDO::query()、PDO::exec()、PDO::prepare()。PDO::query()主要是用于有记录结果返回的操作,特别是SELECT操作,PDO::exec()主要是针对没有结果集合返回的操作,比如INSERT、UPDATE、DELETE等操作,它返回的结果是当前操作影响的列数。PDO::prepare()主要是预处理操作,需要通过$rs->execute()来执行预处理里面的SQL语句,这个方法可以绑定参数,功能比较强大,不是本文能够简单说明白的,大家可以参考手册和其他文档。 获取结果集操作主要是:PDOStatement::fetchColumn()、PDOStatement::fetch()、 PDOStatement::fetchALL()。PDOStatement::fetchColumn() 是获取结果指定第一条记录的某个字段,缺省是第一个字段。PDOStatement::fetch() 是用来获取一条记录,PDOStatement::fetchAll()是获取所有记录集到一个中,获取结果可以通过 PDOStatement::setFetchMode来设置需要结果集合的类型。

  另外有两个周边的操作,一个是PDO::lastInsertId()和PDOStatement::rowCount()。 PDO::lastInsertId()是返回上次插入操作,主键列类型是自增的最后的自增ID。PDOStatement::rowCount()主要是用于PDO::query()和PDO::prepare()进行DELETE、INSERT、UPDATE操作影响的结果集,对 PDO::exec()方法和SELECT操作无效。

  【错误处理】

  如果程序中碰到错误咋办?我们这里描述PDO类的错误信息和异常处理。

  1. 面向对象的方式

  先看看如果连接错误等的处理,使用面向对象的方式来处理:

<?php
try {
 $db = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
 $db = null;
} catch (PDOException $e) {
 print "Error: " . $e->getMessage() . "<br/>";
 die();
}
?>


  这里利用我们PHP 5面向对象的异常处理特征,如果里面有异常的话就初始化调用PDOException来初始化一个异常类。

  PDOException异常类的属性结构:

<?php
class PDOException extends Exception
{
 public $errorInfo = null; // 错误信息,可以调用 PDO::errorInfo() 或 PDOStatement::errorInfo()来访问
 protected $message; // 异常信息,可以试用 Exception::getMessage() 来访问
 protected $code; // SQL状态错误代码,可以使用 Exception::getCode() 来访问
}
?>


  这个异常处理类是集成PHP 5内置的异常处理类,我们简单的看一下PHP 5内置的异常处理类结构:

<?php
class Exception
{
 // 属性
 protected $message = 'Unknown exception'; // 异常信息
 protected $code = 0; // 用户自定义异常代码
 protected $file; // 发生异常的文件名
 protected $line; // 发生异常的代码行号

 // 方法
 final function getMessage(); // 返回异常信息
 final function getCode(); // 返回异常代码
 final function getFile(); // 返回发生异常的文件名
 final function getLine(); // 返回发生异常的代码行号
 final function getTrace(); // backtrace() 数组
 final function getTraceAsString(); // 已格成化成字符串的 getTrace() 信息
}
?>


  相应的,在代码中可以合适的调用 getFile() 和 getLine() 来进行错误定位,更方便的进行调试。

  2. 使用面向过程的方法

  先看代码:

<?
$db = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
$rs = $db->query("SELECT aa,bb,cc FROM foo");
if ($db->errorCode() != '00000'){
 print_r($db->errorInfo());
 exit;
}
$arr = $rs->fetchAll();
print_r($arr);
$db = null;
?>


  PDO和PDOStatement对象有errorCode() 和 errorInfo() 方法,如果没有任何错误, errorCode() 返回的是: 00000 ,否则就会返回一些错误代码。errorInfo() 返回的一个数组,包括PHP定义的错误代码和MySQL的错误代码和错误信息,数组结构如下:

Array
(
 [0] => 42S22
 [1] => 1054
 [2] => Unknown column 'aaa' in 'field list'
)


  每次执行查询以后,errorCode() 的结果都是最新的,所以我们可以很容易自己控制错误信息显示

新手初试,还请各路高手多多指导。

程序源代码如下:

<?php
$conn = mysql_connect("localhost","root","") or die ("wrong!");
$sel=mysql_select_db("mydb",$conn);
$sql="INSERT INTO `mydb`.`test` (
`id` ,
`uid` ,
`regdate` ,
`remark`
)
VALUES (
'', 'php200', now( ) , 'dddd'
) ";
$que=mysql_query($sql,$conn);
if($que)
echo"true";
else
echo "wrong";
?>

mysql_connect() 函数打开非持久的 MySQL 连接。

语法

mysql_connect(server,user,pwd,newlink,clientflag)

参数 描述
server

可选。规定要连接的服务器。

可以包括端口号,例如 "hostname:port",或者到本地套接字的路径,例如对于 localhost 的 ":/path/to/socket"。

如果 PHP 指令 mysql.default_host 未定义(默认情况),则默认值是 'localhost:3306'。

user 可选。用户名。默认值是服务器进程所有者的用户名。
pwd 可选。密码。默认值是空密码。
newlink 可选。如果用同样的参数第二次调用 mysql_connect(),将不会建立新连接,而将返回已经打开的连接标识。参数 new_link 改变此行为并使 mysql_connect() 总是打开新的连接,甚至当 mysql_connect() 曾在前面被用同样的参数调用过。
clientflag

可选。client_flags 参数可以是以下常量的组合:

  • MYSQL_CLIENT_SSL - 使用 SSL 加密
  • MYSQL_CLIENT_COMPRESS - 使用压缩协议
  • MYSQL_CLIENT_IGNORE_SPACE - 允许函数名后的间隔
  • MYSQL_CLIENT_INTERACTIVE - 允许关闭连接之前的交互超时非活动时间

返回值

如果成功,则返回一个 MySQL 连接标识,失败则返回 FALSE。

fputcsv() 函数将行格式化为 CSV 并写入一个打开的文件。

该函数返回写入字符串的长度。若出错,则返回 false。。


说明
fputcsv() 将一行(用 fields 数组传递)格式化为 CSV 格式并写入由 file 指定的文件。

 

// 输出Excel文件头,可把user.csv换成你要的文件名
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="user.csv"');
header('Cache-Control: max-age=0');

// 从数据库教程中获取数据,为了节省内存,不要把数据一次性读到内存,从句柄中一行一行读即可
$sql = 'select * from tbl where ……';
$stmt = $db->query($sql);

// 打开PHP文件句柄,php教程://output 表示直接输出到浏览器
$fp = fopen('php://output', 'a');

// 输出Excel列名信息
$head = array('姓名', '性别', '年龄', 'Email', '电话', '……');
foreach ($head as $i => $v) {
// CSV的Excel支持GBK编码,一定要转换,否则乱码
$head[$i] = iconv('utf-8', 'gbk', $v);
}

// 将数据通过fputcsv写到文件句柄
fputcsv($fp, $head);

// 计数器
$cnt = 0;
// 每隔$limit行,刷新一下输出buffer,不要太大,也不要太小
$limit = 100000;

// 逐行取出数据,不浪费内存
while ($row = $stmt->fetch(Zend_Db::FETCH_NUM)) {

$cnt ++;
if ($limit == $cnt) { //刷新一下输出buffer,防止由于数据过多造成问题
ob_flush();
flush();
$cnt = 0;
}

foreach ($row as $i => $v) {
$row[$i] = iconv('utf-8', 'gbk', $v);
}
fputcsv($fp, $row);
}

参数 描述
file 必需。规定要写入的打开文件。
fields 必需。规定要从中获得数据的数组。
seperator 可选。规定字段分隔符的字符。默认是逗号 (,)。
enclosure 可选。规定字段环绕符的字符。默认是双引号 "。

PDO的数据库教程操作类

 

 

=====================

 

/*
  参数说明
  int   $debug   是否开启调试,开启则输出sql语句
  int   $mode   0 返回数组
         1 返回单条记录
         2 返回行数
  string  $table   数据库表
  string  $fields   需要查询的数据库字段,允许为空,默认为查找全部
  string  $sqlwhere  查询条件,允许为空
  string  $orderby  排序,允许为空,默认为id倒序
  */
 function hrSelect($debug, $mode, $table, $fields="*", $sqlwhere="", $orderby="id desc"){
  global $pdo;
  if($debug){
   if($mode == 2){
    echo "select count(*) from $table where 1=1 $sqlwhere order by $orderby";
   }elseif($mode == 1){
    echo "select $fields from $table where 1=1 $sqlwhere";
   }else{
    echo "select $fields from $table where 1=1 $sqlwhere order by $orderby";
   }
   exit;
  }else{
   if($mode == 2){
    $rs = $pdo->query("select count(*) from $table where 1=1 $sqlwhere order by $orderby");
    $return = $rs->fetchColumn();
   }elseif($mode == 1){
    $rs = $pdo->query("select $fields from $table where 1=1 $sqlwhere");
    $return = $rs->fetch();
   }else{
    $rs = $pdo->query("select $fields from $table where 1=1 $sqlwhere order by $orderby");
    $return = $rs->fetchAll();
   }
   return $return;
  }
 }
 
 /*
  参数说明
  int   $debug   是否开启调试,开启则输出sql语句
  int   $mode   0 默认insert,无返回信息
         1 返回执行条目数
         2 返回最后一次插入记录的id
  string  $table   数据库表
  string  $fields   需要插入数据库的字段
  string  $values   需要插入数据库的信息,必须与$fields一一对应
 */
 function hrInsert($debug, $mode, $table, $fields, $values){
  global $pdo;
  if($debug){
   echo "insert into $table ($fields) values ($values)";
   exit;
  }else{
   if($mode == 2){
    $return = $pdo->lastInsertId("insert into $table ($fields) values ($values)");
   }elseif($mode == 1){
    $return = $pdo->exec("insert into $table ($fields) values ($values)");
   }else{
    $pdo->query("insert into $table ($fields) values ($values)");
    exit;
   }
   return $return;
  }
 }
 
 /*
  参数说明
  int   $debug   是否开启调试,开启则输出sql语句
  int   $mode   0 默认update,无返回信息
         1 返回执行条目数
  string  $table   数据库表
  string  $set   需要更新的字段及内容,格式:a='abc',b=2,c='2010-10-10 10:10:10'
  string  $sqlwhere  修改条件,允许为空
 */
 function hrUpdate($debug, $mode, $table, $set, $sqlwhere=""){
  global $pdo;
  if($debug){
   echo "update $table set $set where 1=1 $sqlwhere";
   exit;
  }else{
   if($mode==1){
    $return = $pdo->exec("update $table set $set where 1=1 $sqlwhere");
   }else{
    $pdo->query("update $table set $set where 1=1 $sqlwhere");
    exit;
   }
   return $return;
  }
 }
 
 /*
  参数说明
  int   $debug   是否开启调试,开启则输出sql语句
  int   $mode   0 默认delete,无返回信息
         1 返回执行条目数
  string  $table   数据库表
  string  $sqlwhere  删除条件,允许为空
 */
 function hrDelete($debug, $mode, $table, $sqlwhere=""){
  global $pdo;
  if($debug){
   echo "delete from $table where 1=1 $sqlwhere";
   exit;
  }else{
   if($mode == 1){
    $return = $pdo->exec("delete from $table where 1=1 $sqlwhere");
   }else{
    $pdo->query("delete from $table where 1=1 $sqlwhere");
    exit;
   }
   return $return;
  }
 }
?>
  另外一段代码是基于我这个数据库操作类的事务实例:

 /*
  注意,数据库操作表类型必须为InnoDB,其他类型不支持事务
  PDO事务机制
  $pdo->beginTransaction(); --开启事务
  $pdo->commit();    --结束事务
  $pdo->rollBack();   --回滚操作
  
  示例,用try/catch包住db操作,当事务内的db操作出现中断,则执行回滚并抛出异常信息。
 */
 try{
  $pdo->beginTransaction();
  hrInsert(0,1,"class","name,parentid","'god',0"); //可以正常执行
  hrInsert(0,0,0,"tb_searchlog","userid,code","4"); //出错
  $pdo->commit();
 }catch(Exception $e){
  $pdo->rollBack();
  echo "Failed: " . $e->getMessage();
 }

[!--infotagslink--]

相关文章

  • php svn操作类

    以前我们开发大型项目时都会用到svn来同步,因为开发产品的人过多,所以我们会利用软件来管理,今天发有一居然可以利用php来管理svn哦,好了看看吧。 代码如下 ...2016-11-25
  • PHP 数据库缓存Memcache操作类

    操作类就是把一些常用的一系列的数据库或相关操作写在一个类中,这样调用时我们只要调用类文件,如果要执行相关操作就直接调用类文件中的方法函数就可以实现了,下面整理了...2016-11-25
  • C#连接SQL数据库和查询数据功能的操作技巧

    本文给大家分享C#连接SQL数据库和查询数据功能的操作技巧,本文通过图文并茂的形式给大家介绍的非常详细,需要的朋友参考下吧...2021-05-17
  • C#从数据库读取图片并保存的两种方法

    这篇文章主要介绍了C#从数据库读取图片并保存的方法,帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下...2021-01-16
  • Intellij IDEA连接Navicat数据库的方法

    这篇文章主要介绍了Intellij IDEA连接Navicat数据库的方法,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借价值,需要的朋友可以参考下...2021-03-25
  • 在数据库里将毫秒转换成date格式的方法

    在开发过程中,我们经常会将日期时间的毫秒数存放到数据库,但是它对应的时间看起来就十分不方便,我们可以使用一些函数将毫秒转换成date格式。 一、 在MySQL中,有内置的函数from_unixtime()来做相应的转换,使用如下: 复制...2014-05-31
  • C#操作本地文件及保存文件到数据库的基本方法总结

    C#使用System.IO中的文件操作方法在Windows系统中处理本地文件相当顺手,这里我们还总结了在Oracle中保存文件的方法,嗯,接下来就来看看整理的C#操作本地文件及保存文件到数据库的基本方法总结...2020-06-25
  • C#中txt数据写入的几种常见方法

    这篇文章主要给大家介绍了关于C#中txt数据写入的几种常见方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-10-25
  • 如何解决局域网内mysql数据库连接慢

    通过内网连另外一台机器的mysql服务, 确发现速度N慢! 等了大约几十秒才等到提示输入密码。 但是ping mysql所在服务器却很快! 想到很久之前有过类似的经验, telnet等一些服务在连接请求的时候,会做一些反向域名解析(如果...2015-10-21
  • MySQL快速复制数据库数据表的方法

    某些时候,例如为了搭建一个测试环境,或者克隆一个网站,需要复制一个已存在的mysql数据库。使用以下方法,可以非常简单地实现。假设已经存在的数据库名字叫db1,想要复制一份,命名为newdb。步骤如下:1. 首先创建新的数据库newd...2015-10-21
  • mysqldump命令导入导出数据库方法与实例汇总

    mysqldump命令的用法1、导出所有库系统命令行mysqldump -uusername -ppassword --all-databases > all.sql 2、导入所有库mysql命令行mysql>source all.sql; 3、导出某些库系统命令行mysqldump -uusername -ppassword...2015-10-21
  • Mysql数据库错误代码中文详细说明

    1005:创建表失败1006:创建数据库失败1007:数据库已存在,创建数据库失败1008:数据库不存在,删除数据库失败1009:不能删除数据库文件导致删除数据库失败1010:不能删除数据目录导致删除数据库失败1011:删除数据库...2013-09-23
  • c#异步读取数据库与异步更新ui的代码实现

    这篇文章主要介绍了c#从数据库里取得数据并异步更新ui的方法,大家参考使用吧...2020-06-25
  • Yii2.0高级框架数据库增删改查的一些操作

    yii2.0框架是PHP开发的一个比较高效率的框架,集合了作者的大量心血,下面通过用户为例给大家详解yii2使用中的一些基本的增删改查操作。 User::find()->all(); //返回所有用户数据; User::findOne($id); //返回 主键...2015-11-24
  • springBoot 项目排除数据库启动方式

    这篇文章主要介绍了springBoot 项目排除数据库启动方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-09-10
  • MYSQL数据库使用UTF-8中文编码乱码的解决办法

    1.用phpmyadmin创建数据库和数据表 创建数据库的时候,请将“整理”设置为:“utf8_general_ci” 或执行语句: 复制代码 代码如下:CREATE DATABASE `dbname` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; 创...2015-10-21
  • c# 对CSV文件操作(写入、读取、修改)

    这篇文章主要介绍了c# 如何对CSV文件操作,帮助大家更好的理解和学习C#,感兴趣的朋友可以了解下...2020-11-03
  • Linux 下使用shell脚本定时维护数据库的案例

    这篇文章主要介绍了Linux 下使用shell脚本定时维护数据库,本文通过案例分析给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-07-11
  • PHP连接公司内部服务器的MYSQL数据库的简单实例

    “主机,用户名,密码”得到连接、“数据库,sql,连接”得到结果,最后是结果的处理显示。当然,数据库连接是扩展库为我们完成的,我们能做的仅仅是处理结果而已。...2013-09-29
  • C#连接加密的Sqlite数据库的方法

    对数据加密分两种,一种是对数据库本身进行加密,另一种是对数据表中的数据进行加密,下面通过本文给大家介绍C#连接加密的Sqlite数据库的方法,感兴趣的朋友一起看看吧...2020-06-25