PHP连接数据库mysqli总结

PHP链接MySQL服务器操作

PHP自身是无法识别sql语句的,所以需要PHP将sql语句作为字符串传递到sql服务器,通过数据库服务器执行sql语句,最后将查询结果返回到PHP


PHP进行SQL操作可以分为个步骤:

  1. 连接数据库服务器
  2. 设定字符集
  3. 选择数据库
  4. 发送sql语句
  5. 获取返回结果集
  6. 关闭数据库连接

1.mysqli_connect()连接数据库

连接到MySQL服务器, mysqli_connect(host,username,password,dbname)
  • host:数据库服务器,默认“localhost:3306”
  • username: 用户名,数据库进程所有者的用户名;
  • password:用户密码
  • dbname:数据库名称

该函数也有返回值,连接成功返回数据库对象,连接失败则返回FALSE;

$host = "localhost";
$user = "root";
$password = ""; //无密码则引号内为空

if(!$link = @mysqli_connect($host,$user,$password)
{
	echo mysqli_connect_error();  //如果连接失败,进入条件语句
	exit();
}

$link数据库连接的标识符,往后的数据库都要用到它
@符号用于屏蔽相关的错误信息。

2.mysqli_set_charset()设置字符集

mysqli_set_charset($link,$charset)
  • $link:数据库连接标识符
  • $charset:设置想要使用的字符集格式,如"utf8",是"utf8"而非"utf-8"

3.mysqli_select_db()选择数据库

通过此函数选中数据库服务器下的某一个需要使用的db mysqli_select_db($link,$database)
  • $link:数据库连接标识符
  • $database:字符类型的,db名称

成功返回TRUE,失败选择FALSE

if(!mysqli_select_db($link,$database))
{
	echo "选择数据库{$database}失败";
	exit();
}

4.mysqli_query()执行各种SQL语句

发送一条sql语句 mysqli_query($link,$query)
  • $query:字符串类型的查询语句
$sql = "SELECT * FROM table";//table为数据库中的指定表
$result = mysqli_query($link,$sql);

$result是函数返回的结果集,如果查询成功,返回的是一个对象,包含所有匹配信息。
如果是UPDATE语句,就不会返回结果集对象,返回的是TRUE,代表语句执行成功。如果返回FALSE则说明语句出错,数据库无法返回结果。

5.处理结果集对象,获取数据

1.mysqli_fetch_row($result)

用来从结果集对象中取出一行数据,将这一行数据作为数组返回,并将指针指向下一行,下一次调用这个函数时,返回的就是下一行的数据。
通常配合循环使用

$sql = "SELECT * FROM table";//table为数据库中的指定表
$result = mysqli_query($link,$sql);

while($arr = mysqli_fetch_row($result))
{
	var_dump($arr);
}

$arr是这一行的所有数据的数组,可以通过 $arr[0],$arr[1],$arr[2] 来获取每一列的数据

2.mysqli_fetch_assoc($result)

用法同mysqli_fetch_row($result)
返回的是关联数组,通过键值对取得每一列成员

$sql = "SELECT * FROM table";//table为数据库中的指定表
$result = mysqli_query($link,$sql);

while($arr = mysqli_fetch_assoc($result))
{
	var_dump($arr);
}

$arr[每一列的字段名]

3.mysqli_fetch_array($result,type)

是row,和assoc,的结合,有两个参数,通过第二个参数决定返回的是枚举类型数组, 还是关联数组,亦或是两者兼具。
第二个参数的可选类型:

  • MYSQLI_BOTH:两者都有,且为默认
  • MYSQLI_ASSOC:关联索引
  • MYSQLI_NUM:数字索引
4.mysqli_fetch_all($result,type) 这是一个不用循环就可以返回所有行的行数,返回值为一个二维数组,高维的表示哪一行的数组,低纬表示这一行的哪列成员
$sql = "SELECT * FROM table";//table为数据库中的指定表
$result = mysqli_query($link,$sql);

$arr = mysqli_fetch_all($result);

$arr[0][0],$arr[0][1]表示一行中某一列成员

扫描二维码关注公众号,回复: 9655684 查看本文章

6.关闭数据库连接

通过 mysqli_close($link)关闭数据库连接。
发布了52 篇原创文章 · 获赞 13 · 访问量 5456

猜你喜欢

转载自blog.csdn.net/MPF1230/article/details/103955975