`

第20章 使用Mysqli操作数据库

 
阅读更多

Demo1.php

<?php
	//使用 mysqli 对象操作数据库
	//创建 mysqli 对象(资源句柄)
	$_mysqli = new mysqli();
	//连接数据库 1.主机名(ip) 2.账户 3.密码 4.数据库
	//mysqli_connect 函数 == $_mysqli -> connect();
	$_mysqli -> connect('localhost','root','123456','guest');
	//断开 MySQL mysqli_close() == $_mysqli -> close();
	$_mysqli -> close();
?>

 

Demo2.php

<?php
	//不用 connect ,直接使用构造方法
	$_mysqli = new mysqli('localhost','root','123456','guest');
	
	//单独选择一个数据库
	//这里选择的数据库会替代上面的数据库
	//为了避免这些麻烦,尽量不用去单独指向了
	//$_mysqli -> select_db('school');
	
	$_mysqli -> close();
?>

 

Demo3.php

<?php
	header ( 'Content-Type:text/html; charset=utf-8;' );
	//连接 mysql
	//当你参数出现错误,导致连接错误的时候,
	//$_mysqli 这个对象就没有创建成功,也就是说,没有资源句柄的功能
	//就是没有调用 mysqli  下的方法和属性的能力了
	@$_mysqli = new mysqli('localhost','root','123456','guest');
	
	//为什么要用函数去捕捉呢?
	//为什么不用面向对象的方式去捕捉呢?
	if(mysqli_connect_errno()){
		echo '数据库连接出现了错误,错误的信息是:'.mysqli_connect_error();
		exit();
	}
	
	$_mysqli->close();
?>

 

Demo4.php

<?php
	header ( 'Content-Type:text/html; charset=utf-8;' );
	//连接 mysql
	//当你参数出现错误,导致连接错误的时候,
	//$_mysqli 这个对象就没有创建成功,也就是说,没有资源句柄的功能
	//就是没有调用 mysqli  下的方法和属性的能力了
	@$_mysqli = new mysqli('localhost','root','123456','guest');
	
	//为什么要用函数去捕捉呢?
	//为什么不用面向对象的方式去捕捉呢?
	if(mysqli_connect_errno()){
		echo '数据库连接出现了错误,错误的信息是:'.mysqli_connect_error();
		exit();
	}
	
	//$_mysqli -> select_db('fsdfd');
	
	//数据库操作时发生的错误
	if($_mysqli -> errno){
		echo  '数据库操作错误:'.$_mysqli -> error;
	}
	
	$_mysqli->close();
?>

 

Demo5.php

<?php
	header ( 'Content-Type:text/html; charset=utf-8;' );
	$_mysqli = new mysqli('localhost','root','123456','testguest');
	//数据库连接时发生的错误
	if(mysqli_connect_errno()){
		echo '数据库连接出现了错误,错误的信息是:'.mysqli_connect_error();
		exit();
	}
	//设置一下编码
	$_mysqli -> set_charset('utf8');
	//创建一句 SQL ,获取数据库的表的数据
	$_sql = "SELECT * FROM tg_user";
	//执行 SQL 语句,把结果集赋给 $_result 
	$_result = $_mysqli -> query($_sql); 
	//var_dump($_result); //object(mysqli_result)#2 (0) { } 
	//通过结果集,我要取得第一行数据
	//fetch_row();是返回的一个数组,里面是第一条数据的集合
	print_r( $_result -> fetch_row());
	//运行一次,指针下移一条
	print_r( $_result -> fetch_row());
	//销毁结果集
	$_result -> free();
	$_mysqli->close();
?>

 

Demo6.php

<?php
	header ( 'Content-Type:text/html; charset=utf-8;' );
	$_mysqli = new mysqli('localhost','root','123456','testguest');
	//数据库连接时发生的错误
	if (mysqli_connect_errno()) {
		echo '数据库连接出现了错误.错误的信息是:'.mysqli_connect_error();
		exit();
	}
	//设置一下编码
	$_mysqli->set_charset('utf8');
	//创建一句SQL,获取数据库的表的数据
	$_sql = "SELECT * FROM tg_user";
	//创建一个结果集
	$_result = $_mysqli->query($_sql);
	//使用索引数组取值
	//print_r($_result->fetch_row());
	$_row = $_result->fetch_row();
	echo $_row[3];
	//遍历,下标很难记[3]
	while (!!$_row = $_result->fetch_row()) {
		echo $_row[3].'<br />';
	}
	$_mysqli->close();
?>

 

Demo7.php

<?php
	header ( 'Content-Type:text/html; charset=utf-8;' );
	$_mysqli = new mysqli('localhost','root','123456','testguest');
	//数据库连接时发生的错误
	if (mysqli_connect_errno()) {
		echo '数据库连接出现了错误.错误的信息是:'.mysqli_connect_error();
		exit();
	}
	//设置一下编码
	$_mysqli->set_charset('utf8');
	//创建一句SQL,获取数据库的表的数据
	$_sql = "SELECT * FROM tg_user";
	//创建一个结果集
	$_result = $_mysqli->query($_sql);
	//使用关联数组取值
	//print_r($_result->fetch_assoc());
	$_assoc = $_result->fetch_assoc();
	echo $_assoc['tg_username'];
	//遍历
	while (!!$_assoc = $_result->fetch_assoc()) {
		echo $_assoc['tg_username'].'<br />';
	}
	$_mysqli->close();
?>

 

Demo8.php

<?php
	header ( 'Content-Type:text/html; charset=utf-8;' );
	$_mysqli = new mysqli('localhost','root','123456','testguest');
	//数据库连接时发生的错误
	if (mysqli_connect_errno()) {
		echo '数据库连接出现了错误.错误的信息是:'.mysqli_connect_error();
		exit();
	}
	//设置一下编码
	$_mysqli->set_charset('utf8');
	//创建一句SQL,获取数据库的表的数据
	$_sql = "SELECT * FROM tg_user";
	//创建一个结果集
	$_result = $_mysqli->query($_sql);
	//使用索引+关联数组取值
	//print_r($_result->fetch_array());
	$_array = $_result->fetch_array();
	echo $_array[3];
	echo $_array['tg_username'];
	//遍历.....
	$_mysqli->close();
?>

 

Demo9.php

<?php
	header ( 'Content-Type:text/html; charset=utf-8;' );
	$_mysqli = new mysqli('localhost','root','123456','testguest');
	//数据库连接时发生的错误
	if (mysqli_connect_errno()) {
		echo '数据库连接出现了错误.错误的信息是:'.mysqli_connect_error();
		exit();
	}
	//设置一下编码
	$_mysqli->set_charset('utf8');
	//创建一句SQL,获取数据库的表的数据
	$_sql = "SELECT * FROM tg_user";
	//创建一个结果集
	$_result = $_mysqli->query($_sql);
	//使用OOP的方法object
	//print_r($_result->fetch_object());
	echo $_result->fetch_object()->tg_username;
	//使用OOP遍历
	while (!!$_object = $_result->fetch_object()) {
		echo $_object->tg_username.'<br />';
	}
	$_mysqli->close();
?>

 

Demo10.php

<?php
	header ( 'Content-Type:text/html; charset=utf-8;' );
	$_mysqli = new mysqli('localhost','root','123456','testguest');
	//数据库连接时发生的错误
	if (mysqli_connect_errno()) {
		echo '数据库连接出现了错误.错误的信息是:'.mysqli_connect_error();
		exit();
	}
	//设置一下编码
	$_mysqli->set_charset('utf8');
	//创建一句SQL,获取数据库的表的数据
	$_sql = "SELECT * FROM tg_user limit 0,10";
	//创建一个结果集
	$_result = $_mysqli->query($_sql);
	//我要看下我选择了多少行
	echo $_result->num_rows;
	//我影响了多少行呢
	echo $_mysqli->affected_rows;
	$_mysqli->close();
?>

 

Demo11.php

<?php
	header ( 'Content-Type:text/html; charset=utf-8;' );
	$_mysqli = new mysqli('localhost','root','123456','testguest');
	//数据库连接时发生的错误
	if (mysqli_connect_errno()) {
		echo '数据库连接出现了错误.错误的信息是:'.mysqli_connect_error();
		exit();
	}
	//设置一下编码
	$_mysqli->set_charset('utf8');
	//创建一句SQL,获取数据库的表的数据
	$_sql = "UPDATE tg_user SET tg_username='一站式建网站' WHERE tg_id=5";
	//创建一个结果集
	$_result = $_mysqli->query($_sql);
	//我要看下我选择了多少行
	echo $_result->num_rows;
	echo '|';
	//我影响了多少行呢
	echo $_mysqli->affected_rows;
	$_mysqli->close();
?>

 

Demo12.php

<?php
	header ( 'Content-Type:text/html; charset=utf-8;' );
	$_mysqli = new mysqli('localhost','root','123456','testguest');
	//数据库连接时发生的错误
	if (mysqli_connect_errno()) {
		echo '数据库连接出现了错误.错误的信息是:'.mysqli_connect_error();
		exit();
	}
	//设置一下编码
	$_mysqli->set_charset('utf8');
	//创建一句SQL,获取数据库的表的数据
	$_sql = "SELECT * FROM tg_user";
	//创建一个结果集
	$_result = $_mysqli->query($_sql);
	//求出表中有多少个字段
	echo $_result->field_count;
	//获取字段的名字
//	$_field = $_result->fetch_field();
//	echo $_field->name;
//	$_field = $_result->fetch_field();
//	echo $_field->name;
//	
//	while (!!$_field = $_result->fetch_field()) {
//		echo $_field->name.'<br />';
//	}
	//一次性取得所有的字段
	$_fields = $_result->fetch_fields();
	//echo $_fields[0]->name;
	foreach ($_fields as $_field) {
		echo $_field->name.'<br />';
	}
	$_mysqli->close();
?>

 

Demo13.php

<?php
	header ( 'Content-Type:text/html; charset=utf-8;' );
	$_mysqli = new mysqli('localhost','root','123456','testguest');
	//数据库连接时发生的错误
	if (mysqli_connect_errno()) {
		echo '数据库连接出现了错误.错误的信息是:'.mysqli_connect_error();
		exit();
	}
	//设置一下编码
	$_mysqli->set_charset('utf8');
	//创建一句SQL,获取数据库的表的数据
	$_sql = "SELECT * FROM tg_user";
	//创建一个结果集
	$_result = $_mysqli->query($_sql);
	//移动数据指针
	$_result->data_seek(9);
	$_row = $_result->fetch_row();
	echo $_row[3];
	//移动字段指针
	$_result->field_seek(3);
	$_field = $_result->fetch_field();
	echo $_field->name;
	$_mysqli->close();
?>

 

Demo14.php

<?php
	header ( 'Content-Type:text/html; charset=utf-8;' );
	$_mysqli = new mysqli('localhost','root','123456','testguest');
	//数据库连接时发生的错误
	if (mysqli_connect_errno()) {
		echo '数据库连接出现了错误.错误的信息是:'.mysqli_connect_error();
		exit();
	}
	//设置一下编码
	$_mysqli->set_charset('utf8');
	//创建三个修改的SQL语句
	$_sql .= "UPDATE tg_article SET tg_username='喀喀喀' WHERE tg_id=1;";
	$_sql .= "UPDATE tg_flower SET tg_fromuser='喀喀喀' WHERE tg_id=1;";
	$_sql .= "UPDATE tg_friend SET tg_fromuser='喀喀喀' WHERE tg_id=1";
	//使用通知执行的方法
	$_mysqli->multi_query($_sql);
	//普通只能执行sql的方法是:$_mysqli->query($_sql);
	$_mysqli->close();
?>

 

Demo15.php

<?php
	header ( 'Content-Type:text/html; charset=utf-8;' );
	$_mysqli = new mysqli('localhost','root','123456','testguest');
	//数据库连接时发生的错误
	if (mysqli_connect_errno()) {
		echo '数据库连接出现了错误.错误的信息是:'.mysqli_connect_error();
		exit();
	}
	//设置一下编码
	$_mysqli->set_charset('utf8');
	//创建三条选择语句 
	$_sql .= "SELECT * FROM tg_photo;";
	$_sql .= "SELECT * FROM tg_user;";
	$_sql .= "SELECT * FROM tg_friend";
	
	if ($_mysqli->multi_query($_sql)) {
		//获取当前的结果集
		$_result = $_mysqli->store_result();
		print_r($_result->fetch_row());
		echo '<br />';
		//将结果集的指针移到下一条
		$_mysqli->next_result();
		$_result = $_mysqli->store_result();
		if (!$_result) {
			echo '第二条SQL语句有五!';
			exit();
		}
		print_r($_result->fetch_row());
		echo '<br />';
		$_mysqli->next_result();
		$_result = $_mysqli->store_result();
		if (!$_result) {
			echo '第三条SQL语句有五!';
			exit();
		}
		print_r($_result->fetch_row());		
	} else {
		echo '第一条SQL语句有误';
		exit();
	}

	$_mysqli->close();
?>

 

Demo16.php

<?php
	header ( 'Content-Type:text/html; charset=utf-8;' );
	$_mysqli = new mysqli('localhost','root','123456','testguest');
	//数据库连接时发生的错误
	if (mysqli_connect_errno()) {
		echo '数据库连接出现了错误.错误的信息是:'.mysqli_connect_error();
		exit();
	}
	//设置一下编码
	$_mysqli->set_charset('utf8');
	//设置关闭自动提交(手工提交)
	$_mysqli->autocommit(false);
	//创建两个SQL语句
	$_sql .= "UPDATE tg_flower SET tg_flower=tg_flower-50 WHERE tg_id=1;";
	$_sql .= "UPDATE tg_friend SET tg_state=tg_state+50 WHERE tg_id=1";
	//执行多条SQL语句
	//只要这两条SQL语句都成功了,就手工提交给数据库 
	//否则,就回滚,撤销之前的有效操作。
	if ($_mysqli->multi_query($_sql)) {
		//通过影响的行数,来判定SQL语句是否成功执行
		//如果$_success是false说明sql语句有吴,那么就执行回滚,否则就手工提交
		$_success = $_mysqli->affected_rows == 1 ? true : false;
		//下移指针
		$_mysqli->next_result();
		$_success2 = $_mysqli->affected_rows == 1 ? true : false;
		//如果两条都成功的话
		if ($_success && $_success2) {
			//执行手工提交
			$_mysqli->commit();
			echo '完美提交';
		} else {
			//执行回滚,撤销之前的所有操作
			$_mysqli->rollback();
			echo '所有操作归零!';
		}
	} else {
		echo '第一条SQL语句有错误!';
	}
	//再开启自动提交
	$_mysqli->autocommit(true);
	$_mysqli->close();
?>

 

 

0
0
分享到:
评论

相关推荐

    PHP程序设计第2版

    第20章 Web服务 第21章 安全PHP编程 第22章 SQLite 第23章 PDO介绍 第24章 MySQL介绍 第25章 安装和配置MySQL 第26章 众多MySQL客户端 第27章 MySQL存储引擎和数据类型 第28章 保护MySQL的安全 第29章 PHP的MySQL...

    PHP程序设计(第2版) 英文

    PEAR 第12章 日期和时间 第13章 PHP 5.1&lt;br&gt;第14章 表单和导航提示 第15章 处理文件上传 第16章 网络 第17章 PHP和LDAP 第18章 会话处理器 第19章 用Smarty模板化 第20章 Web服务 第21章...

    PHP+Ajax网站开发典型实例-源代码

    第1章 PHP基础实例 ...实例3 中文时间显示实例 实例4 删除字符串中的空白 实例5 字符串反转 实例6 字符串加密 实例7 检查日期的有效性 ...第8章 Ajax数据库操作 第9章 Ajax时尚技术 第10章 Ajax实现综合实例

    PHP+Ajax网站开发典型实例

    第8章 Ajax数据库操作 实例63 显示数据库系统信息 实例64 实现数据库常见操作 实例65 完成数据库多种查询显示 实例66 数据库记录自动提示 实例67 AjaX实现数据记录排序 实例68 局部动态更新数据 实例69 AjaX+...

    MySQL5 权威指南第3版中文版_part1

    第二部分 管理工具和用户操作界面  第4章 mysql、mysqladmin和mysqldump  4.1 mysql  4.2 mysqladmin  4.3 mysqldump  第5章 MySQL Administrator和MySQL Query Browser  5.1 安装  5.2 与MySQL服务器建立...

    MySQL 5权威指南(第3版) 中文版 下载地址

    第二部分 管理工具和用户操作界面  第4章 mysql、mysqladmin和mysqldump  4.1 mysql  4.2 mysqladmin  4.3 mysqldump  第5章 MySQL Administrator和MySQL Query Browser  5.1 安装  5.2 与MySQL服务器...

    PHP程序开发范例宝典III

    第6章 PHP与MySQL数据库技术 213 6.1 连接MySQL数据库 214 实例142 通过mysql_connect函数连接数据库 214 实例143 通过Mysqli_connect()函数连接数据库 216 实例144 通过面向对象连接数据库 217 6.2 数据...

    PHP工作笔记.zip

    [二十例 交换排序 - 快速排序][二一例 算法求解应用][二二例 跟踪调试代码 XDebug][二三例 接口调试工具 SocketLog][二四例 递归 尾递归 迭代 回调][二五例 数据库操作(MySQL扩展)][二六例 数据库操作(MySQLI扩展)]...

    云业内容管理系统【云业cms、yunyecms】yunyecms_v2_realease_20191105.rar

    第二步:自动跳出安装界面或者"域名/intstall"加入安装界面 第三步:填写数据库信息,和后台默认登陆密码,以及网站名称,标题、关键字 第四部: 安装完成 后台登录:域名/admin.php 用户名:安装的时候自定义 更新...

    backwpup:BackWPup-WordPress备份插件

    数据库备份(需要mysqli) WordPress XML导出 使用已安装的插件生成文件 优化数据库 检查并修复数据库 文件备份 zip,tar,tar.gz格式的备份(需要gz,ZipArchive) 将备份存储到目录 将备份存储到FTP服务

Global site tag (gtag.js) - Google Analytics