mysql操作封装

<?php
//连接数据库
function connect(){
  $link = mysql_connect(DB_HOST,DB_USER,DB_PWD)or die("数据库连接失败Error:".mysql_errno().":".mysql_error());//mysql_errno()指mysql数据操作的错误信息的数字编码,
  //mysql_error()指mysql数据操作的错误信息
  mysql_set_charset(DB_CHARSET);
  mysql_select_db(DB_DBNAME)or die("指定数据库打开失败");
  return $link;
}

//记录插入操作
function insert($table,$array){
  $keys = join(",",array_keys($array));//array_keys()返回数组中的键名,返回值是一个包含所有键名的数组
  $values = "'".join("','",array_values($array))."'";//array_values()返回数组中的键值,返回值是一个包含所有键值的索引数组
  $sql = "insert{$table}($keys)values($values)";
  mysql_query($sql);
  return mysql_insert_id();//mysql_insert_id()返回上一步insert操作产生的id
}

//记录更新操作
function update($table,$array,$where=null){
  foreach($array as $key=>$val){
    if($str==null){
      $sep="";
    }else{
      $sep=",";
    }
    $str.=$sep.$key."='".$val."'";
  }
  $sql="update {$table} set {$str} ".($where==null?null:"where".$where);
  mysql_query($sql);
  return mysql_affected_rows();//mysql_affected_rows()返回上一次mysql操作受影响的记录条数
}

//记录删除操作
function delete($table,$where=null){
  $where=$where==null?null:" where ".$where;
  $sql = "delete from {$table} {$where}";
  mysql_query($sql);
  return mysql_affected_rows();
}

//查询单条记录
function fetchOne($sql,$result_type=MYSQL_ASSOC){
  $result=mysql_query($sql);
  $row = mysql_fetch_array($result,$result_type);//mysql_fetch_array()从结果集中取得一行作为关联数组,或数字数组,MYSQL_ASSOC是关联数组,MYSQL_NUM是索引数组,MYSQL_BOTH都包括
  return $row;
}

//查询多条记录
function fetchAll($sql,$result_type=MYSQL_ASSOC){
  $result=mysql_query($sql);
  while(@$row=mysql_fetch_array($result,$result_type)){
    $rows[]=$row;
  }
  return $rows;
}

//得到结果集中记录的条数
function getResultNum($sql){
  $result=mysql_query($sql);
  return mysql_num_rows($result);//mysql_num_rows()取得结果集中行的数目
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 Go 中,我们可以使用第三方库 `database/sql` 来操作 MySQL 数据库。下面是一个简单的封装示例: ```go package mysql import ( "database/sql" "fmt" _ "github.com/go-sql-driver/mysql" ) type DB struct { *sql.DB } func NewDB(username, password, host, port, database string) (*DB, error) { // 连接 MySQL 数据库 dsn := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s", username, password, host, port, database) db, err := sql.Open("mysql", dsn) if err != nil { return nil, err } // 返回封装后的 DB 实例 return &DB{db}, nil } func (db *DB) Query(query string, args ...interface{}) (*sql.Rows, error) { // 执行 SQL 查询语句 rows, err := db.DB.Query(query, args...) if err != nil { return nil, err } return rows, nil } func (db *DB) Exec(query string, args ...interface{}) (sql.Result, error) { // 执行 SQL 修改语句 result, err := db.DB.Exec(query, args...) if err != nil { return nil, err } return result, nil } func (db *DB) Close() error { // 关闭 MySQL 数据库连接 return db.DB.Close() } ``` 上述代码中,我们定义了一个 `DB` 结构体,包含了一个 `*sql.DB` 指针类型的字段。我们使用 `NewDB` 函数来创建一个 `DB` 实例,使用 `Query` 和 `Exec` 方法来执行 SQL 查询和修改语句,使用 `Close` 方法来关闭数据库连接。 使用示例: ```go db, err := mysql.NewDB("root", "password", "localhost", "3306", "testdb") if err != nil { panic(err) } defer db.Close() rows, err := db.Query("SELECT * FROM users WHERE age > ?", 18) if err != nil { panic(err) } defer rows.Close() for rows.Next() { var id int var name string var age int err := rows.Scan(&id, &name, &age) if err != nil { panic(err) } fmt.Println(id, name, age) } result, err := db.Exec("INSERT INTO users(name, age) VALUES(?, ?)", "John Doe", 25) if err != nil { panic(err) } lastInsertId, err := result.LastInsertId() if err != nil { panic(err) } fmt.Println(lastInsertId) ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值