Mysqli面向过程连接

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));  //这种方式看的比较直观

总结:

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

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

原文地址:https://www.cnblogs.com/pittle-z/p/11743424.html

时间: 2024-10-13 00:53:17

Mysqli面向过程连接的相关文章

mysqli 面向对象连接和面向过程连接

mysqli 面向对象连接 $host = 'localhost'; $user = 'root'; $password = 'root'; // 创建连接 $conn = @new mysqli($host, $user, $password); // 检测连接 if ($conn->connect_error) { die("连接失败: " . $conn->connect_error); }else{ echo "连接成功"; } mysqli 面

PHP中用mysqli面向过程打开连接关闭mysql数据库

代码如下: 1 <meta http-equiv="content-type" content="text/html" charset="utf-8"/> 2 <h1>用mysqli面向过程方法连接数据库!-姚远的博客</h1> 3 <form method="POST" action="<?php echo iconv("GB2312","

mysqli面向过程练手

1 代码: 2 //1.得到mysqli连接 3 header("Content-type: text/html;charset=utf-8"); 4 $mysqli=mysqli_connect("localhost","root","root","test"); 5 if(!$mysqli){ 6 die("连接失败".mysqli_connnect_error($mysqli));

MySQLi面向过程实践---预处理

MySQLi预处理涉及到以下几个函数: mysqli_stmt mysqli_prepare ( mysqli $link , string $query ) bool mysqli_stmt_bind_param ( mysqli_stmt $stmt , string $types , mixed &$var1 [, mixed &$... ] ) bool mysqli_stmt_execute ( mysqli_stmt $stmt ) bool mysqli_stmt_close

MySQLi面向过程实践---事务处理

数据库的事务处理参见另一篇博客,用PDO实现,和MySQLi操作几乎没有差别,地址是http://www.cnblogs.com/-beyond/p/7551177.html 注意要进行事务处理的表格的存储引擎选择Innodb,而非MyISAM 事务处理需要用到以下函数 bool mysqli_begin_transaction ( mysqli $link [, int $flags [, string $name ]] ) bool mysqli_commit ( mysqli $link

PHPmysqli扩展整理,包括面向过程和面向对象的比较\事务控制\批量执行\预处理

相关文章:PHP的mysql扩展整理,操作数据库的实现过程分析 介绍 mysqli是PHP程序与mysql数据库进行数据交互的桥梁,它支持面向过程和面向对象两种方式 面向过程方式 现在面向对象编程已经成为了主流,mysqli面向过程化的编程方式可能已经没有太多实用价值,但是通过面向对象的和面向过程两种方式实现同一段代码,对体会对象和过程两种编程思想还是很有意义,个人觉得这个比较十分有趣! 流程图: 实例: <?php header("content-type:text/html;chars

【二十】mysqli基于面向过程与面向对象的编程

面向过程的方式 musqli扩展库操作mysql数据库步骤: 1.获取连接并选择数据库 //语法 mysqli_connect(host,username,password,dbname,port,socket); $conn=mysqli_connect("127.0.0.1",'root','','user'); if (!$conn) { die("链接失败"); } 2.设置操作编码 // 语法:mysqli_set_charset(connection,c

php连接数据库的两种方式- 面向过程 面向对象

一.面向对象1. 链接数据库 $conn = @new mysqli("127.0.0.1","root","","mydb"); if($conn->connect_errno){ //返回链接错误号 // 返回链接错误信息 die("数据库链接失败:".$conn->connect_error); } 2. 选择数据库 $conn->select_db("mydb"

简说面向过程与面向对象

昨天白天,因为在室外活动,无事可做,所以我思考了一天,在想怎么才能比较清晰的向人解释这两个概念.所以我对这两个概念的字面意思做了一下详细的解释.没想到,这可能真的会帮助我们非常简单的理解这两个概念. 面向:从字面上理解面向,就是我们的脸对着的地方,引申为我们能看到. 过程: 过程是事物从开始,到发展,到结束的整个经历 那么面向过程就是:我们能看到, 一个事物从 开始->发展->结束. 这对于我们写程序的人来说,可能会有感触,因为一开始我们写程序时.都是按照事件的发展.去安排计算机,一步一步的做