网络知识 娱乐 PHP学习——phpstudy数据库连接(数据库创建,操作)

PHP学习——phpstudy数据库连接(数据库创建,操作)

一、创建一个数据库: 

 打开mysql

软件管理=》 phpMyAdmin=》安装=》管理

输入用户名密码(如果没有修改密码,密码为root) 

创建一个数据库:

 二、连接数据库

1.创建一个连接:使用mysqli_connect()函数,几个参数分别是:

mysqli_connect('数据库的地址(在本机一般为localhost)', '用户名', '密码', '数据库的名字', 端口号(一般为3306))

//@用于屏蔽错误
$link=@mysqli_connect('localhost', 'root', '011216', 'test', 3306);

2.连接错误时的提示

//返回最后一次连接调用的错误代码,发生错误是0
if (mysqli_connect_errno()) {
    var_dump(mysqli_connect_error());
}

3.设置默认字符编码

mysqli_set_charset($link, 'utf-8');

4.选择特定的数据库(在第一步已经指定了数据库为‘test’,此语句可以不写,但若第一步未指定或者中间需要切换数据时,可以使用这句话)

mysqli_select_db($link,'d2');

5.关闭数据库连接(使用完数据库之后一定要关闭)

mysqli_close($link);

三、对数据库进行一些操作

1.执行insert,update,delete等操作:执行成功时会返回一个true

$query='INSERT into userinfo(sno,sname) VALUES("555","王五")';
mysqli_query($link, $query);

2.执行查询操作,返回数据库中的数据的操作

$query='select * from userinfo';

//用一个变量保存返回的结果
$result=mysqli_query($link, $query);

 (1)以索引数组的方式获取一条记录(mysqli_fetch_row()函数)

//执行一次返回一条结果,想要多条结果,多执行几遍,因此可以使用循环
// var_dump(mysqli_fetch_row($result));
// var_dump(mysqli_fetch_row($result));
// var_dump(mysqli_fetch_row($result));

//使用循环
while($data=mysqli_fetch_row($result)){
    var_dump($data);
}

 (2)以关联数组的方式获取一条记录(mysqli_fetch_assoc()函数)

// var_dump(mysqli_fetch_assoc($result));
// var_dump(mysqli_fetch_assoc($result));
// var_dump(mysqli_fetch_assoc($result));
//使用循环
while($data=mysqli_fetch_assoc($result)){
    var_dump($data);
}

(3)以索引数组或关联数组的方式获取一条记录(mysqli_fetch_array($result[,有一个可选参数,默认为索引数组和关联数组都有(MYSQLI_BOTH)]))

var_dump(mysqli_fetch_array($result));

以关联数组获取

var_dump(mysqli_fetch_array($result,MYSQLI_ASSOC));

以索引数组获取

var_dump(mysqli_fetch_array($result,MYSQLI_NUM));

//索引数组
// var_dump(mysqli_fetch_array($result,MYSQLI_ASSOC));
//关联数组
// var_dump(mysqli_fetch_array($result,MYSQLI_NUM));
//默认,两个都有
// var_dump(mysqli_fetch_array($result));

//使用循环
while($data=mysqli_fetch_assoc($result)){
    var_dump($data);
}

 (4)以索引数组或关联数组的方式获取全部记录(mysqli_fetch_all($result[,有一个可选参数,默认为索引数组和关联数组都有(MYSQLI_BOTH)])函数)

var_dump(mysqli_fetch_all($result));

 以关联数组获取

var_dump(mysqli_fetch_all($result,MYSQLI_ASSOC));

 以索引数组获取

var_dump(mysqli_fetch_all($result,MYSQLI_NUM));

3.预执行语句

        执行insert,update等操作

(1)准备好需要执行的SQL语句

$query='insert into userinfo(sno,pwd,sname,identity) values(?,?,?,?)';
$stmt=mysqli_prepare($link, $query);

(2)绑定变量:mysqli_stmt_bind_param(准备好的sql语句,变量类型(一一对应),自定义变量(有多少个就写多少个,即问号有多少个就写多少个))

i:int类型

d:double类型或float类型

s:字符串类型

b:二进制数据类型

mysqli_stmt_bind_param($stmt, 'sssi', $val1, $val2, $val3, $val4);

(3)对变量赋值

$val1='2002';
$val2='666666';
$val3='王二';
$val4=0;

(4)执行

mysqli_stmt_execute($stmt);

完整代码:

//预执行语句
$query='insert into userinfo(sno,pwd,sname,identity) values(?,?,?,?)';
//准备要执行的SQL语句
$stmt=mysqli_prepare($link, $query);
//绑定变量
// i:int类型
// d:double类型或float类型
// s:字符串类型
// b:二进制数据类型
mysqli_stmt_bind_param($stmt, 'sssi', $val1, $val2, $val3, $val4);
$val1='2002';
$val2='666666';
$val3='王二';
$val4=0;
//执行准备好的SQL语句
mysqli_stmt_execute($stmt);

         执行select操作需要具体的结果

(1)准备好需要执行的SQL语句

$query='select * from userinfo where sno=?';
$stmt=mysqli_prepare($link, $query);

(2)绑定变量:mysqli_stmt_bind_param(准备好的sql语句,变量类型(一一对应),自定义变量(有多少个就写多少个,即问号有多少个就写多少个))

mysqli_stmt_bind_param($stmt, 's', $val1);

(3)变量赋值

$val1='2001';

(4)执行

mysqli_stmt_execute($stmt);

(5)将执行结果绑定到某个变量中:mysqli_stmt_bind_result(准备好的语句,后面几个分别为自定义变量用来保存查询的结果(返回的结果有几个变量,就需要写几个变量));

mysqli_stmt_bind_result($stmt,$sno,$pwd,$sname,$identity);

(6)抓取

mysqli_stmt_fetch($stmt);

(7)输出

echo "{$sno}
{$pwd}
{$sname}
{$identity}";

 完整代码:

$query='select * from userinfo where sno=?';
$stmt=mysqli_prepare($link, $query);
mysqli_stmt_bind_param($stmt, 's', $val1);

$val1='2001';
//如果执行成功
if(mysqli_stmt_execute($stmt)){
    //将执行结果绑定到某个变量中
    //第一个变量为准备好的语句,后面几个分别为自定义变量用来保存查询的结果
    mysqli_stmt_bind_result($stmt,$sno,$pwd,$sname,$identity);
    //抓取
    while(mysqli_stmt_fetch($stmt)){
        echo "{$sno}
{$pwd}
{$sname}
{$identity}"; } }

总结:

<?php
//设置页面的字符编码
header('Conten-type:text/html;charset=utf-8');
//与mysql连接
//@用于屏蔽错误

//运行时自行修改数据库密码和数据库
$link=@mysqli_connect('localhost', 'root', 密码, 数据库, 3306);

//返回最后一次连接调用的错误代码,发生错误是0
if (mysqli_connect_errno()) {
    var_dump(mysqli_connect_error());
}
mysqli_set_charset($link, 'utf-8');

//使用特定的数据库
//在前面数据库连接的时候已经指定了,可以不用写这句话
//但是如果中间需要切换数据库,可以使用这句话
//mysqli_select_db($link,'d2');

//执行sql语句

//(1)执行insert,update,delete等操作
// $query='INSERT into userinfo(sno,sname) VALUES("555","王五")';
// var_dump(mysqli_query($link, $query));

//(2)执行查询操作,返回数据库中的数据的操作
// $query='select * from userinfo';
//用一个变量保存返回的结果
// $result=mysqli_query($link, $query);

//1.以索引数组的方式获取一条记录
//执行一次返回一条结果,想要多条结果,多执行几遍,因此可以使用循环
// var_dump(mysqli_fetch_row($result));
// var_dump(mysqli_fetch_row($result));
// var_dump(mysqli_fetch_row($result));

//使用循环
// while($data=mysqli_fetch_row($result)){
//     var_dump($data);
// }

//2.以关联数组的方式获取一条记录
// var_dump(mysqli_fetch_assoc($result));
// var_dump(mysqli_fetch_assoc($result));
// var_dump(mysqli_fetch_assoc($result));

//使用循环
// while($data=mysqli_fetch_assoc($result)){
//     var_dump($data);
// }

//3.以索引数组或关联数组的方式获取一条记录
//索引数组
// var_dump(mysqli_fetch_array($result,MYSQLI_ASSOC));
//关联数组
// var_dump(mysqli_fetch_array($result,MYSQLI_NUM));
//默认,两个都有
// var_dump(mysqli_fetch_array($result));

//使用循环
// while($data=mysqli_fetch_assoc($result)){
//     var_dump($data);
// }

//4.以索引数组或关联数组的方式获取全部记录
// var_dump(mysqli_fetch_all($result));
// var_dump(mysqli_fetch_all($result,MYSQLI_ASSOC));
// var_dump(mysqli_fetch_all($result,MYSQLI_NUM));

//预执行语句
// $query='insert into userinfo(sno,pwd,sname,identity) values(?,?,?,?)';
//准备要执行的SQL语句
// $stmt=mysqli_prepare($link, $query);
//绑定变量
// i:int类型
// d:double类型或float类型
// s:字符串类型
// b:二进制数据类型
// mysqli_stmt_bind_param($stmt, 'sssi', $val1, $val2, $val3, $val4);
// $val1='2002';
// $val2='666666';
// $val3='王二';
// $val4=0;
//执行准备好的SQL语句
// var_dump(mysqli_stmt_execute($stmt));



$query='select * from userinfo where sno=?';
$stmt=mysqli_prepare($link, $query);
mysqli_stmt_bind_param($stmt, 's', $val1);

$val1='2001';
//如果执行成功
if(mysqli_stmt_execute($stmt)){
    //将执行结果绑定到某个变量中
    //第一个变量为准备好的语句,后面几个分别为自定义变量用来保存查询的结果
    mysqli_stmt_bind_result($stmt,$sno,$pwd,$sname,$identity);
    //抓取
    while(mysqli_stmt_fetch($stmt)){
        echo "{$sno}
{$pwd}
{$sname}
{$identity}"; } } //关闭数据库连接 mysqli_close($link);