Mysqli面向过程连接

阿亮 2019-10-26

Myslqi扩展

连接数据库模板

<?php

/* Connect to a MySQL server  连接数据库服务器 */

$link = mysqli_connect(

    ‘localhost‘,  /* The host to connect to 连接MySQL地址 */

    ‘jian‘,      /* The user to connect as 连接MySQL用户名 */

    ‘123456‘,  /* The password to use 连接MySQL密码 */

    ‘jian‘);    /* The default database to query 连接数据库名称*/

if (!$link) {

    printf("Can‘t connect to MySQL Server. Errorcode: %s ", mysqli_connect_error());

    exit;

}else

    echo ‘数据库连接上了!‘;

/* Close the connection 关闭连接*/

mysqli_close($link);

?>

数据库连接的天龙八步:

1、连接数据库
连接:mysqli_connect

2、成功与否判断
连接错误号:mysqli_connect_errno
连接错误信息:mysqli_connect_error
3、选择数据库
选择库:mysqli_select_db
执行错误号:mysqli_errno
执行错误信息:mysqli_error
4、设置字符集
mysqli_set_charset
5、准备SQL语句
说明:符合SQL语法的任意语句
6、执行SQL语句
执行:mysqli_query
7、处理数据
查询时返回查询到数据行数:mysqli_num_rows
数据操作是影响的行数:mysqli_affected_rows
mysqli_fetch_row:获取一条数据的索引数组
mysqli_fetch_assoc:获取一条数据的关联数组
mysqli_fetch_array:获取一条数据的指定数组,
mysqli_fetch_all:获取结果集中的所有数据,
类型取决于第二个参数
第二个参数:MYSQLI_NUM(索引数组)
MYSQLI_ASSOC(关联数组)
MYSQLI_BOTH(索引和关联都有)
8、释放资源、关闭连接
释放资源:mysqli_free_result
关闭连接:mysqli_close

示例:
// 1、连接数据库
$link = @mysqli_connect(‘localhost‘,‘root‘,‘123456‘);
// 2、成功与否判断
if (!$link) {
exit(‘error(‘.mysqli_connect_errno().‘):‘.mysqli_connect_error());
//die 该函数是 exit() 函数的别名。
}
// 3、选择数据库
if (!mysqli_select_db($link,‘test‘)) {
echo ‘error(‘.mysqli_errno($link).‘):‘.mysqli_error($link);
mysqli_close($link);
die;
}
// 4、设置字符集
mysqli_set_charset($link,‘utf8‘);

设置从数据库服务器发送数据到数据库服务器时使用的默认字符集。
// 5、准备SQL语句
$sql = ‘select * from star where id > 100‘;
// 6、执行SQL语句
$result = mysqli_query($link,$sql);
if ($result && mysqli_num_rows($result)) {
// 7、处理数据
/
mysqli_fetch_row:获取一条数据的索引数组
mysqli_fetch_assoc:获取一条数据的关联数组
mysqli_fetch_array:获取一条数据的指定数组,
类型取决于第二个参数
mysqli_fetch_all:获取结果集中的所有数据,
类型取决于第二个参数
第二个参数:MYSQLI_NUM(索引数组)
MYSQLI_ASSOC(关联数组)
MYSQLI_BOTH(索引和关联都有)
var_dump(mysqli_fetch_all($result,MYSQLI_ASSOC));
/
while ($row = mysqli_fetch_array($result,MYSQLI_NUM)) {
var_dump($row);
}
} else {

}
// 8、释放资源、关闭连接
mysqli_free_result($result);
mysqli_close($link);

具体实现

 //连接数据库操作
//连接数据库,并通过$link保存链接$link = mysqli_connect(‘localhost‘,‘root‘,‘‘,‘project5‘);

Mysqli_connect(主机名/IP,用户名,密码,数据库名,端口号,socket通信);

Mysqli_connect 函数有六个参数,当省略参数时自动使用php.ini中配置的默认值

当数据库连接失败时,mysqli_connect提示的错误信息并不友好。可以通过下面的方式解决

$link = @mysqli_connect(‘localhost‘,‘root‘,‘‘,‘project5‘) or exit(‘数据库连接失败‘);

@用于屏蔽错误信息,or是比较运算符,只有当左边表达式为false时才会执行右边的表达式,‘exit’用于停止脚本,同时可以输出错误信息。

当需要详细信息时,可以通过mysqli_connect_error()函数获取。

下面我用两种方式打印保存的连接$link

echo "<pre>";print_r($link);
var_dump($link);

在使用命令行工具操作数据库时,需要使用SET NAMES 设置字符集

在PHP中也需要设置字符集

mysqli_set_charset() 函数规定当与数据库服务器进行数据传送时要使用的默认字符集。

mysqli_set_charset($link,‘utf8‘); //成功返回true失败返回false

只有保持PHP脚本文件、web服务器返回的编码、网页的<meta>标记、PHP访问Mysql使用的字符集集多统一时才能避免中文乱码问题。

https://www.jb51.net/article/22501.htm(具体文档)

php页面为utf编码 
header("Content-type: text/html;charset=utf-8"); 

<meta charset="UTF-8">//网页为uft8编码

设置查询的数据为utf8字符集(set names utf8同时设置客户端字符集,连接层字符集和查询结果(如结果集或错误消息)返回给客户端的字符集)

mysqli_query($link,"set names utf8");//PHP访问Mysql使用的字符集

mysqli_query() 函数执行某个针对数据库的查询

mysqli_set_charset和SET NAMES优劣分析(mysqli_set_charset除了做了”SET NAMES”以外, 还多做了一步)所有最好用mysqli_set_charset(详情请看下面链接的文章http://www.laruence.com/2010/04/12/1396.html).

https://blog.csdn.net/zhangfeng1133/article/details/46777883

$link = @mysqli_connect(‘localhost‘,‘root‘,‘‘,‘project5‘) or exit(‘数据库连接失败‘);  //数据库连接结果
mysqli_set_charset($link,‘utf8‘); //成功返回true失败返回false
mysqli_query($link,‘use news‘);       //选择数据库(SQL语句方式)
mysqli_query($link,‘set names utf8‘);  //设置字符集(SQL语句方式)
//执行SQL语句,并获取结果集
$result = myslqi_query($link,‘show databases‘);
if(!$result){
    exit(‘执行失败。错误信息:‘.mysqli_error($link));
}
echo "<pre>";
print_r($result);
var_dump($result);

//处理结果集$result

mysql_num_rows($result)  从结果集中获取数据记录的个数

mysql_num_fields($result)  从结果集中获取数据记录列的个数

mysql_fetch_row()      该函数将一条结果记录返回,并以一个普通索引数组的形式保存

mysql_fetch_assoc()     该函数将一条结果记录返回,并以一个普通关联数组形式保存

mysql_fetch_array()     默认同时以索引数组和关联数组保存,三个参数MYSQL_ASSOC, MYSQL_NUM, MYSQL_BOTH

mysql_fetch_object()    以一个对象的形式返回一条结果记录,他的各个字段需要以对象的形式进行访问

var_dump(mysqli_num_rows($result));(从结果集中获取数据记录的个数;结果如下)
H:\wamp\www\test\test.php:48:int 6
var_dump(mysqli_fetch_all($result)); //获取所有结果,并以数组方式返回
print_r(mysqli_fetch_all($result));  //这种方式看的比较直观

 Mysqli面向过程连接

 Mysqli面向过程连接

总结:

var_dump(mysqli_fetch_array($result));
var_dump(mysqli_fetch_assoc($result));
var_dump(mysqli_fetch_row($result));

 Mysqli面向过程连接

从结果集中获取数据记录的个数

相关推荐