`

第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
分享到:
评论

相关推荐

    完整精品数据库课件 MySQL从入门到精通 第20章 PHP操作MySQL数据库(共7页).ppt

    在本章“PHP操作MySQL数据库”中,我们将深入探讨如何利用PHP与MySQL进行交互,创建动态的Web应用。 20.1 PHP访问MySQL数据库的一般步骤 在网页和网站开发中,PHP扮演着后端处理的角色,负责处理用户请求并与...

    MySQL数据库应用案例视频教程下载第20讲 PHP操作MySQL数据库.zip

    在"第20讲 PHP操作MySQL数据库"中,我们主要会学习以下关键知识点: 1. **连接MySQL数据库**:首先,我们将了解如何使用PHP的mysqli或PDO扩展来建立与MySQL服务器的连接。理解如何配置连接参数,如主机名、用户名、...

    PHP程序设计第2版

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

    简单PHP分页类的实现(内含测试数据库及数据库操作类)

    - 连接数据库:使用如PDO或mysqli等扩展建立与数据库的连接。 - 执行查询:接受SQL查询语句,执行并返回结果集。 - 获取单行/多行数据:从结果集中提取单个或多个记录。 - 关闭连接:在完成操作后关闭数据库连接。 ...

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

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

    数据库语法

    在PHP中操作数据库通常需要使用连接数据库的函数库,如 MySQLi 或 PDO。另外,对于像 ThinkPHP 这样的框架,通常会有内置的数据库操作类来简化这些操作。例如,在ThinkPHP中遍历查询结果可以使用如下模板语法: ```...

    php数据库数据表的创建.pdf

    注意,这里的`mysql_`系列函数已被弃用,推荐使用`mysqli_`或`PDO`扩展进行数据库操作。例如,使用`mysqli`连接数据库并执行SQL: ```php $servername = "服务器地址"; $username = "用户名"; $password = "用户...

    PHP使用Mysqli类库实现完美分页效果的方法

    例如,如果每页显示20条记录,第一页的`LIMIT`是"0,20",第二页是"20,20",以此类推。 4. **使用M类库进行分页**: 在`article.php`文件中,首先引入配置文件,然后实例化M类,通过`Total`方法获取所有资讯文章的...

    PHP程序开发范例宝典附带光盘第20章

    在第20章中,可能会介绍如何使用PHP的PDO或mysqli扩展来连接数据库、执行SQL语句、处理结果集等。 3. **面向对象编程**:随着PHP5的发布,PHP引入了完整的面向对象编程(OOP)支持。读者将学习到类的定义、对象的...

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

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

    php电子教案(PPT)

    十、数据库操作:第10章 数据库的选择、创建及.ppt PHP常与数据库结合使用,本章涵盖了如何选择合适的数据库系统,如MySQL,以及连接、查询、插入、更新和删除数据的基本操作,利用mysqli或PDO扩展进行数据库操作的...

    电子商务Web数据库开发探索——PHP技术.pdf

    二、数据库连接与管理 在电子商务系统中,数据库通常选择MySQL,因为其高效、稳定且与PHP有良好的兼容性。PHP通过mysqli或PDO扩展与MySQL进行交互,实现数据的查询、插入、更新和删除操作。例如,使用mysqli_connect...

    《PHP&MySQL 网站设计与实现》源程序

    第二章:PHP语法 这一部分主要讲解PHP的语法结构,包括变量声明、数据类型、运算符、流程控制(如条件语句和循环)以及函数的使用。通过实例,读者可以了解到如何编写简单的PHP脚本。 第三章:MySQL数据库操作 本...

    PHP+Ajax网站开发典型实例

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

    PHP 6 與MySQL基礎學習教室10-15章簡報檔案

    **第二章:PHP环境配置与MySQL安装** 在开始学习之前,需要安装PHP和MySQL。通常,开发者会使用像XAMPP或WAMP这样的集成开发环境,它们包含了Apache服务器、PHP、MySQL等必要组件。安装过程简单,只需按照向导步骤...

    php教程MYSQL学习视频PHP程序员基础课程下16-29课.rar

    "22PHP第二十二讲_PHP文件上传操作"和"20PHP第二十讲_PHP中的文件操作"探讨了PHP在处理文件方面的功能。文件上传是Web应用中常见的需求,如用户头像上传,而文件操作则涉及到读写、移动、删除等操作,对网站内容的...

    PHP Solution 3rd Edition

    **第17章:使用数据库进行用户身份验证** - 介绍如何构建一个安全的用户登录系统,包括密码加密存储和验证。 - 展示如何使用会话管理和数据库记录实现用户权限控制。 综上所述,《PHP Solution 3rd Edition》这本书...

    PHP基础学习资料 PDF 电子教程.rar

    2. **第二章:变量与常量** - PHP变量的声明和使用 - 变量的作用域(global, local, static) - 常量与define()函数 - 变量的类型转换 3. **第三章:运算符与控制结构** - 算术、比较、逻辑运算符 - 条件语句...

Global site tag (gtag.js) - Google Analytics