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使用pdo连接access数据库并循环显示数据操作示例本文实例讲述了PHP使用pdo连接access数据库并循环显示数据操作 。分享给大家供大家参考php数据库帮助类,具体如下php数据库帮助类:
PDO连接与查询:
try
{
$conn
=
new
PDO("odbc:driver={microsoft
access
driver
【php数据库帮助类 php数据库扩展有哪些】(*.mdb)};
dbq=".realpath("MyDatabase.mdb"))
or
die("链接错误php数据库帮助类!");
//echo
"链接成功!";
}
catch(PDOException
$e){
echo
$e-getMessage();
}
$sql
=
"select
*
from
users";
1.
foreach()方法
foreach
($conn-query($sql)
as
$row)
{
$row["UserID"];
$row["UserName"];
$row["UserPassword"];
}
2.
while()方法
$rs
=
$conn-query($sql);
$rs-setFetchMode(PDO::FETCH_NUM);
while($row=$rs-fetch()){
$row[0];
$row[1];
$row[2];
}
php使用PDO抽象层获取查询结果,主要有三种方式:
(1)PDO::query()查询 。
看下面这段php代码:
?php
//PDO::query()查询
$res
=
$db-query('select
*
from
user');
$res-setFetchMode(PDO::FETCH_NUM);
//数字索引方式
while
($row
=
$res-fetch()){
print_r($row);
}
?
(2)PDO-exec()处理sql
?php
//PDO-exec()处理sql
$db-setAttribute(PDO::ATTR_ERRMODE,
PDO::ERRMODE_EXCEPTION);
$res
=
$db-exec("insert
into
user(id,name)
values('','php点点通')");
echo
$res;
?
(3)PDO::prepare()预处理执行查询
?php
//PDO::prepare()预处理执行查询
$res
=
$db-prepare("select
*
from
user");
$res-execute();
while
($row
=
$res-fetchAll())
{
print_r($row);
}
?
setAttribute()
方法是设置属性 , 常用参数如下:
PDO::CASE_LOWER
--
强制列名是小写
PDO::CASE_NATURAL
--
列名按照原始php数据库帮助类的方式
PDO::CASE_UPPER
--
强制列名为大写
setFetchMode方法来设置获取结果集的返回值的类型,常用参数如下:
PDO::FETCH_ASSOC
--
关联数组形式
PDO::FETCH_NUM
--
数字索引数组形式
PDO::FETCH_BOTH
--
两者数组形式都有 , 这是默认的
PDO::FETCH_OBJ
--
按照对象的形式 , 类似于以前的
mysql_fetch_object()
对上面总结如下:
查询操作主要是PDO::query()、PDO::exec()、PDO::prepare() 。
PDO-query()
—
处理一条SQL语句,并返回一个“PDOStatement”
PDO-exec()
—
处理一条SQL语句,并返回所影响的条目数
PDO::prepare()主要是预处理操作,需要通过$rs-execute()来执行预处理里面的SQL语句
最后介绍两个常用的函数:
(1)fetchColumn()获取指定记录里一个字段结果,默认是第一个字段!
?php
$res
=
$db-query('select
*
from
user');
//获取指定记录里第二个字段结果
$col
=
$res-fetchColumn(1);
echo
$col;
?
(2)fetchAll(),从一个结果集中获取数据,然后存放在关联数组中
?php
$res
=
$db-query('select
*
from
user');
$res_arr
=$res-fetchAll();
print_r($res_arr);
?
更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP基于pdo操作数据库技巧总结》、《php Oracle数据库程序设计技巧总结》、《PHP MongoDB数据库操作技巧大全》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助 。
您可能感兴趣的文章:PHP使用PDO连接ACCESS数据库PHP数据库链接类(PDO Access)实例分享php中mysql连接方式PDO使用详解关于php连接mssql:pdo
odbc
sql
serverPhp中用PDO查询Mysql来避免SQL注入风险的方法php中在PDO中使用事务(Transaction)全新的PDO数据库操作类php版(仅适用Mysql)php使用pdo连接并查询sql数据库的方法php使用pdo连接mssql
server数据库实例PHP实现PDO的mysql数据库操作类
几种常用PHP连接数据库的代码示例PHP连接数据库之PHP连接MYSQL数据库代码
?php$mysql_server_name= localhost ;//改成自己的mysql数据库服务器$mysql_username= root ;//改成自己的mysql数据库用户名$mysql_password= ;//改成自己的mysql数据库密码$mysql_database= mycounter ;//改成自己的mysql数据库名$conn=mysql_connect($mysql_server_name $mysql_username $mysql_password $mysql_database);$sql= CREATE DATABASE mycounterDEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci;;mysql_query($sql);$sql= CREATE TABLE `counter`(`id` INT( ) UNSIGNED NOT NULLAUTO_INCREMENT`count` INT( )UNSIGNED NOT NULL DEFAULTPRIMARY KEY( `id` ) ) TYPE = innodb; ;mysql_select_db($mysql_database $conn);$result=mysql_query($sql);//echo $sql;mysql_close($conn);echo "Hello!数据库mycounter已经成功建立!";?
PHP连接数据库之PHP连接ACCESS数据库代码方法
?$conn = new ("ADODB Connection");$connstr = "DRIVER={Microsoft Access Driver (* mdb)}; DBQ="realpath("data/db mdb");$conn Open($connstr);$rs = new ("ADODB RecordSet");$rs Open("select * from szd_t" $conn );while(! $rs eof) {$f = $rs Fields( );echo $f value;$rs MoveNext();}?
PHP连接数据库之PHP连接MS SQL数据库代码方法
安装SQL服务器并添加PHP的MSSQL扩展
使用以下代码连接并测试
?php$myServer = localhost; //主机$myUser = sa; //用户名$myPass = password; //密码$myDB = Northwind; //MSSQL库名$s = @mssql_connect($myServer$myUser$myPass)or die(Couldnt connect to SQL Server on $myServer);$d = @mssql_select_db($myDB$s)or die(Couldnt open database $myDB);$query = SELECT TitleOfCourtesyFirstNameLastName AS Employee ;$query= FROM Employees ;$query= WHERECountry=USA AND Left(HomePhone) = ( );$result = mssql_query($query);$numRows = mssql_num_rows($result);echoh$numRowsRow($numRows ==? : s)Returned / h ;while($row = mssql_fetch_array($result)){echoli$row[Employee]/li;}?
PHP连接数据库之PHP连接Oracle数据库
PHP提供了两套函数与Oracle连接 分别是ORA_和OCI函数 其中ORA_函数略显陈旧 OCI函数更新据说更好一些 两者的使用语法几乎相差无几 你的PHP安装选项应该可以支持两者的使用
?if ($conn=Ora_Logon("user@TNSNAME" "password")){ echo "SUCCESS ! Connected to databasen";}else{echo "Failed : ( Could not connect to databasen";}Ora_Logoff($conn);phpinfo();?lishixinzhi/Article/program/PHP/201405/30761
PHP实现的pdo连接数据库并插入数据功能简单示例本文实例讲述了PHP实现的pdo连接数据库并插入数据功能 。分享给大家供大家参考 , 具体如下:
创建配置文件
pdo_config.php
?php
$db_Type
=
"mysql";//数据库类型
$host
=
"localhost";//主机名
$dbName
=
"test";//数据库名
$userName
=
"root";//用户名
$password
=
"root";//密码
$dsn
=
"{$db_Type}:host={$host};dbname={$dbName}";
?
pdo插入数据库
pdo_insert.php
?php
header('Content-type:text/html;
charset=utf-8');
require
'pdo_config.php';
try{
$pdo
=
new
PDO
($dsn,$userName,$password);//创建一个连接对象
$pdo-exec('set
names
utf8');//设置编码
$sql
=
"INSERT
student
(name,email)
VALUES
('李四','123@qq.com')";
$pdo-exec($sql);
}catch
(PDOException
$e){
die('操作失败'.$e-getMessage());
}
//关闭连接
$pdo
=
null;
?
更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP基于pdo操作数据库技巧总结》、《php mysqli数据库程序设计技巧总结》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助 。
您可能感兴趣的文章:关于php连接mssql:pdo
odbc
sql
serverPHP5中使用PDO连接数据库的方法PHP中PDO连接数据库中各种DNS设置方法小结ThinkPHP框架基于PDO方式连接数据库操作示例PHP使用ODBC连接数据库的方法tp5(thinkPHP5)框架连接数据库的方法示例PHP7使用ODBC连接SQL
Server2008
R2数据库示例【基于thinkPHP5.1框架】tp5(thinkPHP5)操作mongoDB数据库的方法thinkPHP5实现数据库添加内容的方法tp5(thinkPHP5)框架数据库Db增删改查常见操作总结PHP利用pdo_odbc实现连接数据库示例【基于ThinkPHP5.1搭建的项目】
php数据库帮助类的介绍就聊到这里吧,感谢你花时间阅读本站内容 , 更多关于php数据库扩展有哪些、php数据库帮助类的信息别忘了在本站进行查找喔 。
推荐阅读
- 小哥哥教你怎么做直播卖货,怎样可以做直播卖货
- 美少女迅雷下载,美少女吗
- 毕业设计基础设计计算书,毕业设计基础设计计算书范文
- go语言面试点 go语言面试题
- sqlserver数据库复制,sqlserver数据库复制表
- 拍摄舞蹈用什么灯最好呢,拍舞蹈视频用什么灯
- excel中如何编号,excel如何编号排序
- GO语言学习壁纸图片高级 go语言教程
- 夏季服装店如何引流推广,服装店引流的最快方法是什么