数据访问
来源:互联网 发布:安卓手机php编程 编辑:程序博客网 时间:2024/06/06 14:12
1.步骤
1.造连接对象
1
$db
=
new
MySQLi(
'localhost'
,
''
,
''
,
''
);
//数据库服务器地址就是ip地址,本地的话也需要写对方ip地址,数据库用户名,数据库连接密码,操作的数据库名称,端口号默认端口号(一般不用),服务连接(一般也不用)
例如:
1
$db
=
new
MySQLi(
"localhost"
,
"root"
,
"123"
,
"test1"
);
//连接到我的数据库
2.判断链接是否出错
1
2
3
4
5
if
(mysqli_connect_error())
{
die
(
"链接失败"
);
}
//出错会返回值,没有错误就返回空,放在if中就可以来判断
//可以不用写
3.准备sql语句
1
$sql
=
"select * from info"
;
//SQL的各种语句
例如:
1
$sql
=
"select * from student"
;
//查询我库中的学生表
4.执行sql语句
1
2
$result
=
$db
->query(
$sql
);
//执行sql语句方法mysql::query 它需要的参数:连接,sql语句,返回数据的模式(一般不用)
//失败是返回false,查询语句返回结果集对象result,增删改语句成功返回true失败返回false
例如:
1
$result
=
$db
->query(
$sql
);
//执行上面的查询语句
返回结果就是没有值,那就是正确的
5.从结果集中取数据:
1
2
3
4
5
6
7
8
9
10
11
$attr
=
$result
->fetch_all();
//这个方法不能随便使用,特别是放在服务器上时,默认的返回所有数据并且是以索引的二维数组方式存在。。它需要的参数:result结果集,resulttype结果类型
//结果类型有这几种:(MYAQLI_ASSOC返回的是关联数组;MYAQLI_NUM返回索引数组;MYAQLI_BOTH返回的是既有索引又有关联的数组)使用时不需要加双引号,直接用就可以
fetch_array();
//返回只包含一条数据,返回的是一维数组,但不是全部而是当前一条数据,索引和关联都有的数组,执行第二遍是返回的下一条数据,也就是第二条数据
//参数:(MYAQLI_ASSOC返回的是关联数组;MYAQLI_NUM返回索引数组;MYAQLI_BOTH返回的是既有索引又有关联的数组)使用时不需要加双引号,直接用就可以
fetch_assoc();
//返回的当前一条数据并且是一维的关联数组
fetch_object();
//也是返回当前数据,返回的是数据对象:列名和值:第一次调用是返回的第一个数据对象,再一次是第二个数据对象,
fetch_row();
//返回当前这条数据,返回的是索引数组
例如:(1)
1
$sql
=
"select * from student"
;
//sql语句<br>$result = $db->qurey($sql); //执行sql语句<br>$attr = $result->fetch_all(); //返回的是二维数组的索引数组<br>var_dump($attr);
(2)
1
$attr
=
$result
->fetch_array();
//返回的是一维数组,而且是当前的一条数据,在执行一遍就是下一条数据,默认是索引和关联都有
(3)
1
$attr
=
$result
->fetch_assoc();
//也是返回当前的一条数据,一维的关联数组,执行第二次也是下一条数据
(4)
1
$attr
=
$result
->fetch_object();
//返回的是当前数据的对象,列和值,也是执行下一次就是下一条数据对象
(5)
1
$attr
=
$result
->fetch_row();
//返回的索引数组,也是当前的一条数据
想要显示表中的整个内容:这些方法具体怎么用:用all方法的时候可以用foreach循环遍历,如果只是显示一条数据的方法可以用while来循环
1
2
3
4
5
$attr
=
$result
->fetch_all();
foreach
(
$attr
as
$v
)
{
echo
"<div>{$v[0]}--{$v[1]}--{$v[2]}--{$v[3]}--{$v[4]}</div>"
;
}
1
2
3
4
while
(
$attr
=
$result
->fetch_row())
{
echo
"<div>{$attr[0]}--{$attr[1]}--{$attr[2]}--{$attr[3]}--{$attr[4]}</div>"
;
}
这两个方法的结果都是一样的,不一样的是针对方法不同,所使用的循环不一样
另外要注意的是:
1.无论查的结果是什么,就会返回二维数组
1
2
3
4
$sql
=
"select cno from course where cno='3-105'"
;
$result
=
$db
->query(
$sql
);
$attr
=
$result
->fetch_all();
var_dump(
$attr
);
2.增删改的语句,返回的结果是false和true(成功是true,否则就是false)
1
2
3
$sql
=
"insert into student values('3-107','数学','567','329','23y9')"
;
$result
=
$db
->query(
$sql
);
var_dump(
$result
);
这就是添加成功了~~~如果在执行一次那就是不行了,因为数据库的这个表中已经有了这个数据,所以是false
0 0
- 数据访问
- 数据访问
- 数据访问
- 数据访问
- 数据访问
- 数据访问
- 数据访问
- 数据访问
- 数据访问
- 数据访问
- 《数据访问模式》笔记:数据访问器
- 数据访问之文件系统数据
- 服务器端数据访问小结:
- 数据访问策略建议
- 使用数据访问页
- Microsoft数据访问组件
- 数据访问技术
- ASP.NET数据访问
- 增删改查的数据访问
- Linux之进程控制与管理实验五
- 注册和登陆与数据库的链接
- android保存读取对象 SharedPreferences方式
- 3532: [Sdoi2014]Lis
- 数据访问
- Python常用控制语句
- 1-网络协议基础
- hdu 1052 Tian Ji -- The Horse Racing
- 2014年第五届蓝桥杯C/C++程序设计本科B组省赛-六角填数
- ElaseticSearch单节点安装
- (转)Android:控件AutoCompleteTextView 自动提示
- 设计模式
- 继续坑自己,EmguCV之SVM.Train(二)