PHP链接MySQL服务器操作
PHP自身是无法识别sql语句的,所以需要PHP将sql语句作为字符串传递到sql服务器,通过数据库服务器执行sql语句,最后将查询结果返回到PHP
PHP进行SQL操作可以分为六个步骤:
- 连接数据库服务器
- 设定字符集
- 选择数据库
- 发送sql语句
- 获取返回结果集
- 关闭数据库连接
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 查看本文章