php定义数据库操作类 php常用类库

PHP用户类的一个方法怎样调用数据库操作类

直接调用就行了,不过可能你需要引用文件,以下是例子

创新互联建站从2013年创立,是专业互联网技术服务公司,拥有项目网站设计、成都网站设计网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元恩施土家做网站,已为上家服务,为恩施土家各地企业和个人服务,联系电话:028-86922220

//文件conn.php,用于连接数据库

class DB_Conn {

}

//文件 db.php, 用于数据库操作,这个类必然需要使用数据库连接对象,因此引用conn.php

require_once conn.php;

class DB {

}

//文件user.php

require_once 'db.php';

class User {

public function getUserById($id) {

$conn = new Db_Conn();

$db = new Db();

}

}

以上只是示意,如果文件不在一个目录下记得修改路径。而且,一般来说数据库对象应该包含连接数据库和数据操作的全部功能,不需要分别写在两个类里面。我觉得你对面向对象的理解还很浅薄,需要进一步累积经验。

php opencart怎么进行数据库操作

1,根目录下config.php中定义了数据库信息:

// DB

define('DB_DRIVER', 'mysqli');

define('DB_HOSTNAME', 'localhost');

define('DB_USERNAME', 'root');

define('DB_PASSWORD', 'qqqq');

define('DB_DATABASE', 'qqqq');

define('DB_PORT', '3306');

define('DB_PREFIX', 'oc_');

2,systemlibrary文件夹下db.php中定义了DB类,数据库的连接方法

$this-db = new $class($hostname, $username, $password, $database, $port);

3,index.php中初始化数据库连接

$db = new DB(DB_DRIVER, DB_HOSTNAME, DB_USERNAME, DB_PASSWORD, DB_DATABASE, DB_PORT);

4,controller中调用model层定义的查询函数

$layout_id = $this-model_catalog_category-getCategoryLayoutId(end($path));

5,model层getCategoryLayoutId函数中返回查询sql结果

$query = $this-db-query("SELECT * FROM " . DB_PREFIX . "category_to_layout WHERE category_id = '" . (int)$category_id . "' AND store_id = '" . (int)$this-config-get('config_store_id') . "'");

PHP基于单例模式实现的数据库操作基类

本文实例讲述了PHP基于单例模式实现的数据库操作基类。分享给大家供大家参考,具体如下:

配置文件:

?php

$db

=

array(

'host'='localhost',

'user'='root',

'password'='',

'database'='test',

)

?

php

数据库基类:

?php

class

db

{

public

$conn;

public

static

$sql;

public

static

$instance=null;

private

function

__construct(){

require_once('db.config.php');

$this-conn

=

mysql_connect($db['host'],$db['user'],$db['password']);

if(!mysql_select_db($db['database'],$this-conn)){

echo

"失败";

};

mysql_query('set

names

utf8',$this-conn);

}

public

static

function

getInstance(){

if(is_null(self::$instance)){

self::$instance

=

new

db;

}

return

self::$instance;

}

/**

*

查询数据库

*/

public

function

select($table,$condition=array(),$field

=

array()){

$where='';

if(!empty($condition)){

foreach($condition

as

$k=$v){

$where.=$k."='".$v."'

and

";

}

$where='where

'.$where

.'1=1';

}

$fieldstr

=

'';

if(!empty($field)){

foreach($field

as

$k=$v){

$fieldstr.=

$v.',';

}

$fieldstr

=

rtrim($fieldstr,',');

}else{

$fieldstr

=

'*';

}

self::$sql

=

"select

{$fieldstr}

from

{$table}

{$where}";

$result=mysql_query(self::$sql,$this-conn);

$resuleRow

=

array();

$i

=

0;

while($row=mysql_fetch_assoc($result)){

foreach($row

as

$k=$v){

$resuleRow[$i][$k]

=

$v;

}

$i++;

}

return

$resuleRow;

}

/**

*

添加一条记录

*/

public

function

insert($table,$data){

$values

=

'';

$datas

=

'';

foreach($data

as

$k=$v){

$values.=$k.',';

$datas.="'$v'".',';

}

$values

=

rtrim($values,',');

$datas

=

rtrim($datas,',');

self::$sql

=

"INSERT

INTO

{$table}

({$values})

VALUES

({$datas})";

if(mysql_query(self::$sql)){

return

mysql_insert_id();

}else{

return

false;

};

}

/**

*

修改一条记录

*/

public

function

update($table,$data,$condition=array()){

$where='';

if(!empty($condition)){

foreach($condition

as

$k=$v){

$where.=$k."='".$v."'

and

";

}

$where='where

'.$where

.'1=1';

}

$updatastr

=

'';

if(!empty($data)){

foreach($data

as

$k=$v){

$updatastr.=

$k."='".$v."',";

}

$updatastr

=

'set

'.rtrim($updatastr,',');

}

self::$sql

=

"update

{$table}

{$updatastr}

{$where}";

return

mysql_query(self::$sql);

}

/**

*

删除记录

*/

public

function

delete($table,$condition){

$where='';

if(!empty($condition)){

foreach($condition

as

$k=$v){

$where.=$k."='".$v."'

and

";

}

$where='where

'.$where

.'1=1';

}

self::$sql

=

"delete

from

{$table}

{$where}";

return

mysql_query(self::$sql);

}

public

static

function

getLastSql(){

echo

self::$sql;

}

}

$db

=

db::getInstance();

//$list

=

$db-select('demo',array('name'='tom','password'='ds'),array('name','password'));

//echo

$db-insert('demo',array('name'='脚本之家','password'='123'));

//echo

$db-update('demo',array("name"='xxx',"password"='123'),array('id'=1));

echo

$db-delete('demo',array('id'='2'));

db::getLastSql();

echo

"pre";

?

更多关于PHP操作数据库相关内容感兴趣的读者可查看本站专题:《php+mysql数据库操作入门教程》、《PHP基于pdo操作数据库技巧总结》及《php常见数据库操作技巧汇总》

希望本文所述对大家PHP程序设计有所帮助。

PHP数据库操作之基于Mysqli的数据库操作类库

此类库简单、易用,便于你自己修改和对功能的改善,能解决大部分

PHP

项目中执行的

SQL

操作。

初步工作

首先,请大家下载这个类库

M.class.php 再下载一个

Mysqli

连接数据库的类库

MysqliDb.class.php(打包下载地址)

新建一个

includes

的文件夹,将下载下来的两个

class

文件,放进去。

然后,请你在项目下创建一个

test.php

文件。注:UTF-8

文件格式

请先根据你机器的情况,填充以下代码,用于连接数据库:

复制代码

代码如下:

header('Content-Type:text/html;Charset=utf-8');

define('ROOT_PATH',

dirname(__FILE__));

define('DB_HOST',

'localhost');

//数据库服务器地址

define('DB_USER',

'root');

//数据库用户名

define('DB_PWD',

'×××');//数据库密码

define('DB_NAME',

'×××');

//数据库名称

define('DB_PORT',

'3306');

//数据库端口

function

__autoload($className)

{

require_once

ROOT_PATH

.

'/includes/'.

ucfirst($className)

.'.class.php';

//自动加载

class

文件

}

好了,上面的这些操作都是初步工作,下面正式进入类库的讲解。

类库讲解

首先,我们得实例化

M.class.php,实例化很简单:

复制代码

代码如下:

$m

=

new

M();

//这步操作代表

M.class.php

中的所有功能都封装在了变量

$m

注:

1、M类库中的方法参数说明,请到

M.class.php

文件中看详细的注释,这里不再进行叙述。建议在学习的时候,对照着看下文件中的参数即注释。

2、讲解代码中用到的数据库结构为:

复制代码

代码如下:

CREATE

TABLE

`user`

(

`id`

int(8)

unsigned

NOT

NULL

auto_increment,

`name`

varchar(50)

default

NULL,

`email`

varchar(100)

default

NULL,

`age`

smallint(3)

default

NULL,

`class_id`

int(8)

default

NULL,

`commit_time`

int(10)

default

NULL,

PRIMARY

KEY

(`id`),

KEY

`name`

(`name`)

)

ENGINE=MyISAM

DEFAULT

CHARSET=utf8

复制代码

代码如下:

CREATE

TABLE

`class`

(

`class_id`

int(8)

NOT

NULL

auto_increment,

`class_name`

varchar(100)

default

NULL,

PRIMARY

KEY

(`class_id`)

)

ENGINE=InnoDB

DEFAULT

CHARSET=utf8

并添加一条测试数据。

3、M类库中,大部分方法都分两中类型,即:SQL方法;拼接方法,具体在实例中可以看出

4、以下称述中的

M

M.class.php

文件

方法1、Insert()

添加数据

Insert

方法的全部使用案例如下:

复制代码

代码如下:

$m-Insert("user",

null,

array('焦焦',

'liruxing1715@sina.com',

'23',

time()));

//

拼接方法:往`user`表中添加一条数据,返回值为数据库影响的行数

$m-Insert("user",

null,

array('焦焦',

'liruxing1715@sina.com',

'23',

time()),

true);

//

功能同上,返回

last_insert_id(插入的增长id)

$m-Insert("INSERT

INTO

`user`

(`name`,

`email`,

`age`,

`commit_time`)

VALUES

('张小花',

'zhangxiaohua@sina.com.cn',

'22',

'".time()."')");

//SQL方法,返回值为数据库影响的行数

$m-Insert("INSERT

INTO

`user`

(`name`,

`email`,

`age`,

`commit_time`)

VALUES

('张小花',

'zhangxiaohua@sina.com.cn',

'22',

'".time()."')",

true);

//

同上,返回

last_insert_id

注:Insert

方法中的第二个参数若为null,可自动获得插入表除

auto_increment

字段之外的所有字段,详情请看M源文件;若要返回值为最后插入的

ID,那么请设置

Insert

方法的最后一个参数为

true(默认是false);

方法2、Update()

修改数据

update

方法的全部使用案例如下:

复制代码

代码如下:

$m-Update("user",

array('name'='李茹茹',

'age'=24),

"id=1");

//拼接方法,修改id为1的数据的名称为“李茹茹”;年龄为“24”,其方法的返回值为受影响的行数

$m-Update("UPDATE

`user`

SET

`name`='李茹茹',

`age`=24

WHERE

id

=

1");

//SQL

用法,功能同上

方法3、Del()

删除数据

Del

方法的全部使用案例如下:

复制代码

代码如下:

$m-Del('user',

'id=3');

//拼接方法:删除`user`表中

id

为3的数据,返回受影响的行数

$m-Del("DELETE

FROM

`user`

WHERE

id=4");

//SQL方法:删除`user`表中

id

为4的数据,返回受影响的行数

$m-Del("DELETE

FROM

`user`

WHERE

id

in

(10,

11,

12)");

//SQL方法:删除多条数据,删除`user`表中

id

10、11、12

的数据,返回受影响的行数

方法4、Total()

获取记录数,返回值都为int

Del

方法的全部使用案例如下:

复制代码

代码如下:

$m-Total('user');

//拼接方法:返回

`user`表中的记录数,无条件

$m-Total('user',

'id1');

//拼接方法:返回

`user`表中

id

大于1的记录数,有条件

$m-Total("SELECT

COUNT(*)

AS

total

FROM

`user`");

//SQL方法,注:使用SQL方法,语句中必须使用

"AS

total",否则会报错

方法5、IsExists()

检查数据是否存在,返回值为boolean

复制代码

代码如下:

$m-IsExists('user',

"`name`='焦焦'");

//拼接方法:返回`user`表中是否存在`name`为“焦焦”的数据,返回true,若不存在,返回false

方法6、InsertId()

获取表下一个添加的自动增长id,注意,这里不进行添加操作,只是获取下一个增长id

复制代码

代码如下:

echo

$m-InsertId('user');

//获取`user`

表下一个添加的自动增长id

方法7、GetRow()

返回单条数据,返回值为一维数组

GetRow

方法的全部使用案例如下:

复制代码

代码如下:

$data

=

$m-GetRow("SELECT

`name`,email

FROM

`user`

WHERE

id=1");

//SQL方法,返回一维数组,例如:Array

(

[name]

=

焦焦

[email]

=

liruxing1715@sina.com

)

$data

=

$m-GetRow("SELECT

u.`name`,

u.email,

c.class_name

FROM

`user`

u,

`class`

c

WHERE

u.class_id=c.class_id

AND

u.id=1");

//SQL方法,多表查询

$data

=

$m-GetRow('user',

'`name`,email',

"id=1");

//拼接方法

$data

=

$m-GetRow('user

as

u,`class`

c',

'u.`name`,u.email,c.class_name',

"u.id=1

AND

u.class_id=c.class_id");

//拼接方法,多表查询

$data

=

$m-GetRow("SELECT

`name`,email

FROM

`user`");

//如果没有指定条件应该是显示全部信息,但是在此方法中将默认显示第一条(不推荐这么使用!!!)

$data

是查询出来的一维数组。

方法8、GetOne()

返回单个数据

GetOne

方法的全部使用案例如下:

复制代码

代码如下:

$name

=

$m-GetOne("SELECT

`name`

FROM

`user`

WHERE

id=1");

//SQL方法,返回一个字符串,例如:焦焦

$name

=

$m-GetOne("user",

"name",

"id=1");

//拼接方法,返回一个字符串,例如:焦焦

方法9、FetchAll()

返回所有记录

复制代码

代码如下:

$data

=

$m-FetchAll("user");

//返回`user`表中的所有记录,以二维数组的形式

$data

=

$m-FetchAll("SELECT

*

FROM

`user`");

//SQL

方法,功能和返回值同上

$data

=

$m-FetchAll("user",

"name,email",

"id1",

'id

DESC',

'2');

//返回两条id1的数据,只显示name,email,并且以id

为倒序排序。注:请注意该方法的最后一个参数也可以为'0,2',目的是为分页准备的,如果第一页为'0,2'的话,那么第二页就是'2,2'

//该方法也支持联表查询和多表查询,下面以联表查询为例

$data

=

$m-FetchAll("`user`

as

u

LEFT

JOIN

`class`

as

c

ON

u.class_id=c.class_id",

"u.`name`,u.email,

c.class_name",

"u.id=1");

//注意:该拼接方法中,ON

添加的位置

注:对于该

FetchAll

方法,后续我会写一篇使用该方法进行完美分页的文章!!请关注。

方法10、MultiQuery()

执行多条SQL语句

复制代码

代码如下:

$sql

=

"INSERT

INTO

user

(`name`,email,

age,

class_id,

commit_time)

VALUES

('贾花花',

'jiahuahua@sina.com.cn',

'22',

'1',

'".time()."')";

//添加一个名叫“贾花花”的学生信息

$sql

.=

";DELETE

FROM

`user`

WHERE

`name`='焦焦'";

//删除一条名叫“焦焦”的学生信息

//解释:$sql

是多条

SQL

以英文;(分号)拼接起来的

$data

=

$m-MultiQuery($sql);

//返回为true,代表执行成功;为false,代表执行失败

类库讲解完毕

到此该类库的全部功能就讲解完毕,希望你能多看看M文件,了解其内部运行的机制。M

文件不会存在执行缓慢情况,请大家放心使用。

如果在使用过程中出现

SQL

拼接错误,类库会报出友善的错误提示。

有问题请留言,欢迎大家的批评和建议,加油!学习好运。

综合应用数据库知识和用面向对象编程技术在PHP程序中创建出学生类

PHP使用面向对象的编程方式来编写数据库操作类

步骤1:创建一个PHP的页面“config.php”定义数据库相关的参数

?php // config.php

define(?DB_USER?, "username");

define(?DB_PASSWORD?, "password");

define(?DB_DATABASE?, "database name");

define(?DB_SERVER?, "ip address of database server");

?

第2步:创建一个PHP的类,用于连接数据库,命名为“db_connect.php”

?php // db_connnect.php

class DB_Connect {

private $con;

// constructor

function __construct() {

// connecting to database

$this-con = $this-connect();

}

//Function to connect with database

private function connect() {

// import database connection variables

require_once __DIR__.?/config.php?;

try {

$conn = new PDO(?mysql:host=?.DB_SERVER .?;

dbname=?.DB_DATABASE, DB_USER, DB_PASSWORD);

$conn-setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

} catch(PDOException $e) {

echo ?ERROR: ? . $e-getMessage();

}

return $conn;

}

public function getDbConnection(){

return $this-con;

}

}

?

第3步:创建一个类,它包含了所有的功能,为您实现SQL查询,命名为“db_functions.php”

调用里面的函数进行SQL查询、以促进可重用性和可维护性

?php // db_functions.php

class DB_Functions {

private $con;

// constructor

function __construct() {

require_once __DIR__.?/db_connect.php?;

// connecting to database

$db = new DB_Connect();

$this-con = $db-getDbConnection();

}

public function selectUser($id) {

try {

$stmt = $this-con-prepare(?SQL语句?);

$params = array(?:id? = $id);

$stmt-execute($params);

return $stmt;

} catch(PDOException $e) {

echo ?ERROR: ? . $e-getMessage();

}

}

public function otherSQLfunction($parameter) {

// other sql code

}

}

第4步:最后,在你其他的PHP文件里面只需要简单地调用“db_functions.php”的方法

?php

require_once __DIR__.?/db_functions.php?;

$db = new DB_Functions();

$result = $db-selectUser($id);

// other code

?

php如何使用类和数据库进行数据操作

贴出自己写的一个数据库类吧。

class.php

?php

class Db_Base

{

var $db_host;

var $db_name;

var $db_user;

var $password;

var $linkID;

var $sql;

var $result;

//构造函数,其中dbname,dbuser,dbpsd填自己的数据名,用户名,密码

function __construct()

{

$this-linkID = 0;

$this-sql = "";

$this-db_name="dbname";

$this-db_user="dbuser";

$this-password="dbpsd";

$this-db_host="localhost";

//调用数据库链接函数

$this-Db_Connect();

}

function Db_Base()

{

$this-__construct();

}

//链接数据库函数

function Db_Connect()

{

$this-linkID=@mysql_connect($this-db_host,$this-db_user,$this-password);

if(!$this-linkID)

{

DisplayError("连接失败");exit();

}

$this-Db_Select();

return true;

}

//选择数据库函数

function Db_Select()

{

$select=mysql_select_db($this-db_name);

if(!$select)

{

DisplayError("选择数据库失败");exit();

}

}

//sql语句操作

function Db_Query($sql)

{

if($sql) $this-sql=$sql;

if(!($this-result=mysql_query($this-sql,$this-linkID)))

{

DisplayError("SQL无效");

return 0;

}

else

{

return $this-result;

}

}

//sql语句的结果用数组返回

function Db_Fetch_Array()

{

return mysql_fetch_array($this-result);

}

//select语句 影响的行数

function Db_Num_Rows()

{

return mysql_num_rows($this-result);

}

//INSERT、UPDATE 、DELETE 的影响行数

function Db_Affected_Rows()

{

return mysql_affected_rows();

}

//清除记录

function Db_Free_Result()

{

if(!is_array($this-result)) return "";

foreach($this-result as $kk = $vv)

{

if($vv) @mysql_free_result($vv);

}

}

?

其中DisplayError 为外部定义函数

应用的话,如下操作

example.php

?php

require_once(class.php);

$news=new Db_Base();//构建对象

$sql="select * from tableA limit 0,100";//初始化sql语句

$news-Db_Query($sql);//向数据库插入sql语句

while($re=$news-Db_Fetch_Array())//循环输出sql结果集

{

echo $re[keyA];

echo $re[keyB];//keyA,keyB为你数据表的键

}

echo $news-Db_Num_Rows();//输出本次sql语句影响的行数,假若sql语句是update,delete,insert的,则用 Db_Affected_Rows() 函数

$news-Db_Free_Result();//清空查询结果

?

好吧,百度的这个表单输入框真烂,不能调格式,代码格式可能很乱,就麻烦楼主慢慢看吧。若有问题再发消息给我百度号。

新闻标题:php定义数据库操作类 php常用类库
网址分享:https://www.cdcxhl.com/article6/doddcog.html

成都网站建设公司_创新互联,为您提供动态网站网站收录小程序开发虚拟主机服务器托管响应式网站

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

手机网站建设