^ 回到顶部
  • 人生没有定律,每个人都有自己的节奏
  • 本站wordpress建站教程均通过实践后发布,希望对你有帮助,如果有代码出错,请联系站长解决
  • 希望你的坚持,都是因为热爱,而不是因为不甘心
  • 8年wordpress建站经验,5星服务品质
  • 那些不愿意让你吃亏的人,才是真正值得你深交的人,也是值得你付出时间的人
  • 腾讯云3年2核2G新品轻量限时特惠只需408元

php数据库操作类代码(增、删、改、查)

数据库操纵基本流程为:

1、连接数据库服务器

2 核 2G 限时特惠 396 元/3 年    宝塔建站 10850 大礼包

2、选择数据库

3、执行 SQL 语句

4、处理结果集

5、打印操作信息

其中用到的相关函数有:

mysql_connect ( [string server [, string username [, string password [, bool new_link [, int client_flags]]]]] )  连接数据库服务器

mysql_pconnect ( [string server [, string username [, string password [, int client_flags]]]] )  连接数据库服务器,长连接

mysql_affected_rows ( [resource link_identifier] )取得最近一次与 link_identifier 关联的 INSERT,UPDATE 或 DELETE 查询所影响的记录行数。

mysql_close ( [resource link_identifier] )如果成功则返回 TRUE,失败则返回 FALSE。

mysql_errno ( [resource link_identifier] )返回上一个 MySQL 函数的错误号码,如果没有出错则返回 0(零)。

mysql_error ( [resource link_identifier] )返回上一个 MySQL 函数的错误文本,如果没有出错则返回 ''(空字符串)。如果没有指定连接资源号,则使用上一个成功打开的连接从 MySQL 服务器提取错误信息。

mysql_fetch_array ( resource result [, int result_type] )返回根据从结果集取得的行生成的数组,如果没有更多行则返回 FALSE。

mysql_free_result ( resource result )释放所有与结果标识符 result 所关联的内存。

mysql_num_fields ( resource result )返回结果集中字段的数目。

mysql_num_rows ( resource result )返回结果集中行的数目。此命令仅对 SELECT 语句有效。要取得被 INSERT,UPDATE 或者 DELETE 查询所影响到的行的数目,用 mysql_affected_rows()。

mysql_query ( string query [, resource link_identifier] ) 向与指定的连接标识符关联的服务器中的当前活动数据库发送一条查询。php 如果没有指定 link_identifier,则使用上一个打开的连接。如果没有打开的连接,本函数会尝试无参数调用 mysql_connect() 函数来建立一个连接并使用之。查询结果会被缓存

class mysql {
  private $db_host; //数据库主机
  private $db_user; //数据库登陆名
  private $db_pwd; //数据库登陆密码
  private $db_name; //数据库名
  private $db_charset; //数据库字符编码
  private $db_pconn; //长连接标识位
  private $debug; //调试开启
  private $conn; //数据库连接标识
  private $msg = ""; //数据库操纵信息
  // private $sql = ""; //待执行的 SQL 语句
  public function __construct($db_host, $db_user, $db_pwd, $db_name, $db_chaeset = 'utf8', $db_pconn = false, $debug = false) {
  $this->db_host = $db_host;
  $this->db_user = $db_user;
  $this->db_pwd = $db_pwd;
  $this->db_name = $db_name;
  $this->db_charset = $db_chaeset;
  $this->db_pconn = $db_pconn;
  $this->result = '';
  $this->debug = $debug;
  $this->initConnect();
  }
  public function initConnect() {
  if ($this->db_pconn) {
  $this->conn = @mysql_pconnect($this->db_host, $this->db_user, $this->db_pwd);
  } else {
  $this->conn = @mysql_connect($this->db_host, $this->db_user, $this->db_pwd);
  }
  if ($this->conn) {
  $this->query("SET NAMES " . $this->db_charset);
  } else {
  $this->msg = "数据库连接出错,错误编号:" . mysql_errno() . "错误原因:" . mysql_error();
  }
  $this->selectDb($this->db_name);
  }
  public function selectDb($dbname) {
  if ($dbname == "") {
  $this->db_name = $dbname;
  }
  if (!mysql_select_db($this->db_name, $this->conn)) {
  $this->msg = "数据库不可用";
  }
  }
  public function query($sql, $debug = false) {
  if (!$debug) {
  $this->result = @mysql_query($sql, $this->conn);
  } else {
  }
  if ($this->result == false) {
  $this->msg = "sql 执行出错,错误编号:" . mysql_errno() . "错误原因:" . mysql_error();
  }
  // var_dump($this->result);
  }
  public function select($tableName, $columnName = "*", $where = "") {
  $sql = "SELECT " . $columnName . " FROM " . $tableName;
  $sql .= $where ? " WHERE " . $where : null;
  $this->query($sql);
  }
  public function findAll($tableName) {
  $sql = "SELECT * FROM $tableName";
  $this->query($sql);
  }
  public function insert($tableName, $column = array()) {
  $columnName = "";
  $columnValue = "";
  foreach ($column as $key => $value) {
  $columnName .= $key . ",";
  $columnValue .= "'" . $value . "',";
  }
  $columnName = substr($columnName, 0, strlen($columnName) - 1);
  $columnValue = substr($columnValue, 0, strlen($columnValue) - 1);
  $sql = "INSERT INTO $tableName($columnName) VALUES($columnValue)";
  $this->query($sql);
  if($this->result){
  $this->msg = "数据插入成功。新插入的 id 为:" . mysql_insert_id($this->conn);
  }
  }
  public function update($tableName, $column = array(), $where = "") {
  $updateValue = "";
  foreach ($column as $key => $value) {
  $updateValue .= $key . "='" . $value . "',";
  }
  $updateValue = substr($updateValue, 0, strlen($updateValue) - 1);
  $sql = "UPDATE $tableName SET $updateValue";
  $sql .= $where ? " WHERE $where" : null;
  $this->query($sql);
  if($this->result){
  $this->msg = "数据更新成功。受影响行数:" . mysql_affected_rows($this->conn);
  }
  }
  public function delete($tableName, $where = ""){
  $sql = "DELETE FROM $tableName";
  $sql .= $where ? " WHERE $where" : null;
  $this->query($sql);
  if($this->result){
  $this->msg = "数据删除成功。受影响行数:" . mysql_affected_rows($this->conn);
  }
  }
  public function fetchArray($result_type = MYSQL_BOTH){
  $resultArray = array();
  $i = 0;
  while($result = mysql_fetch_array($this->result, $result_type)){
  $resultArray[$i] = $result;
  $i++;
  }
  return $resultArray;
  }
  // public function fetchObject(){
  // return mysql_fetch_object($this->result);
  // }
  public function printMessage(){
  return $this->msg;
  }
  public function freeResult(){
  @mysql_free_result($this->result);
  }
  public function __destruct() {
  if(!empty($this->result)){
  $this->freeResult();
  }
  mysql_close($this->conn);
  }
  }

调用代码如下:

require_once 'mysql_V1.class.php';
 //require_once 'commonFun.php';
 $db = new mysql('localhost', 'root', '', "test");
 //select 查
 $db->select("user", "*", "username = 'system'");
 $result = $db->fetchArray(MYSQL_ASSOC);
 print_r($result);
 dump($db->printMessage());
 //insert 增
 //$userInfo = array('username'=>'system', 'password' => md5("system"));
 //$db->insert("user", $userInfo);
 //dump($db->printMessage());
 //update 改
 //$userInfo = array('password' => md5("123456"));
 //$db->update("user", $userInfo, "id = 2");
 //dump($db->printMessage());
 //delete 删
 //$db->delete("user", "id = 1");
 //dump($db->printMessage());
 //findAll 查询全部
 $db->findAll("user");
 $result = $db->fetchArray();
 dump($result);

赠人玫瑰,手有余香。