2014-09-05
数据库操纵基本流程为:
1、连接数据库服务器
2、选择数据库
3、执行SQL语句
4、处理结果集
5、打印操作信息
其中用到的相关函数有
•resource mysql_connect ( [string server [, string username [, string password [, bool new_link [, int client_flags]]]]] ) 连接数据库服务器
•resource mysql_pconnect ( [string server [, string username [, string password [, int client_flags]]]] ) 连接数据库服务器,长连接
•int mysql_affected_rows ( [resource link_identifier] )取得最近一次与 link_identifier 关联的 INSERT,UPDATE 或 DELETE 查询所影响的记录行数。
•bool mysql_close ( [resource link_identifier] )如果成功则返回 TRUE,失败则返回 FALSE。
•int mysql_errno ( [resource link_identifier] )返回上一个 MySQL 函数的错误号码,如果没有出错则返回 0(零)。
•string mysql_error ( [resource link_identifier] )返回上一个 MySQL 函数的错误文本,如果没有出错则返回 ''(空字符串)。如果没有指定连接资源号,则使用上一个成功打开的连接从 MySQL 服务器提取错误信息。
•array mysql_fetch_array ( resource result [, int result_type] )返回根据从结果集取得的行生成的数组,如果没有更多行则返回 FALSE。
•bool mysql_free_result ( resource result )释放所有与结果标识符 result 所关联的内存。
•int mysql_num_fields ( resource result )返回结果集中字段的数目。
•int mysql_num_rows ( resource result )返回结果集中行的数目。此命令仅对 SELECT 语句有效。要取得被 INSERT,UPDATE 或者 DELETE 查询所影响到的行的数目,用 mysql_affected_rows()。
•resource mysql_query ( string query [, resource link_identifier] ) 向与指定的连接标识符关联的服务器中的当前活动数据库发送一条查询。php如果没有指定 link_identifier,则使用上一个打开的连接。如果没有打开的连接,本函数会尝试无参数调用 mysql_connect() 函数来建立一个连接并使用之。查询结果会被缓存
代码如下:来源php教程中心
. 代码如下:
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);
1
CI框架连接数据库配置操作以及多数据库操作
09-05
2
asp 简单读取数据表并列出来 ASP如何快速从数据库读取大量数据
05-17
3
C语言关键字及其解释介绍 C语言32个关键字详解
04-05
4
C语言中sizeof是什么意思 c语言里sizeof怎样用法详解
04-26
5
PHP中的魔术方法 :__construct, __destruct , __call, __callStatic,__get, __set, __isset, __unset , __sleep,
09-05
6
将视频设置为Android手机开机动画的教程
12-11
7
PHP中的(++i)前缀自增 和 (i++)后缀自增
09-05
8
最简单的asp登陆界面代码 asp登陆界面源代码详细介绍
04-12
常用dos命令及语法
2014-09-27
PHP中include和require区别之我见
2014-09-05
如何安装PHPstorm并配置方法教程 phpstorm安装后要进行哪些配置
2017-05-03
php递归返回值的问题
2014-09-05
单片机编程好学吗?单片机初学者怎样看懂代码
2022-03-21
PHP 教程之如何使用BLOB存取图片信息实例
2014-09-05
学ug编程如何快速入门?
2022-03-17
PHP数组函数array
2014-09-05
学习使用C语言/C++编程的7个步骤!超赞~
2022-03-20
零基础的初学者怎样学习java,或者应该先学什么?
2022-03-21
维塔战士游戏最新版下载v976 安卓版
其它手游 218.24MB
下载
泡泡小镇城堡游戏下载v1.1.5 安卓完整版
其它手游 115.27MB
下载
3d蚊子模拟器游戏最新版下载v2023.08.22 安卓版
其它手游 61.26MB
下载
超级机器人英雄游戏下载v1.1.3 安卓版
其它手游 55.99MB
下载
robot super游戏下载v1.1.3 安卓版
其它手游 55.99MB
下载
zombie tsunami游戏下载v4.6.8 安卓版
其它手游 91.81MB
下载2026僵尸尖叫正版下载v4.6.8 安卓官方版
其它手游 91.81MB
下载
忍者终极传奇无限金币版下载v1.4.4 安卓版
其它手游 47.87MB
下载火影忍者终极传奇下载v1.4.4 安卓汉化版
下载
科技创造沙盒最新版下载v7.11.1919
下载
帕皮的房子完整版下载v1.15.2 安卓版
下载
暴力街区2手游官方版(Brutal Street 2)下载v1.3.1 安卓最新版
下载
电视入侵游戏(tv invasion)下载v0.5.3 安卓版
下载
暗影忍者中文版下载v1.1.31 安卓最新版
下载
养成迷你大叔汉化版下载v1.1.1 安卓版
下载
萝卜爸爸游戏下载v1.44.0 安卓最新版
下载