首页 > 数据库 >第六章 使用Mysqli操作数据库

第六章 使用Mysqli操作数据库

时间:2023-06-26 22:36:54浏览次数:38  
标签:数据库 sql mysqli echo result tg 第六章 Mysqli fetch


demo1.php

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

 

demo2.php

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

 

demo3.php

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

 

demo4.php

<?php
$_mysqli = new mysqli ( 'localhost', 'root', 'yangfan', 'guest' );
// 数据库连接时发生的错误
if (mysqli_connect_errno ()) {
	echo '数据库连接出现了错误.错误的信息是:' . mysqli_connect_error ();
	exit ();
}
$_mysqli->select_db ( 'sdfskldjfsldkjfsd' );
// 数据库操作时发生的错误
if ($_mysqli->errno) {
	echo '数据库操作错误:' . $_mysqli->error;
}
$_mysqli->close ();
?>

 

demo5.php

<?php
$_mysqli = new mysqli ( 'localhost', 'root', 'yangfan', '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 );
// 通过结果集,我要取得第一行数据
// fetch_row();是返回的一个数组,里面是第一条数据的集合
print_r ( $_result->fetch_row () );
// 运行一次,指针下移一条
print_r ( $_result->fetch_row () );
// 销毁结果集
$_result->free ();
$_mysqli->close ();
?>

 

demo6.php

<?php
$_mysqli = new mysqli ( 'localhost', 'root', 'yangfan', '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
$_mysqli = new mysqli ( 'localhost', 'root', 'yangfan', '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
$_mysqli = new mysqli ( 'localhost', 'root', 'yangfan', '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
$_mysqli = new mysqli ( 'localhost', 'root', 'yangfan', '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
$_mysqli = new mysqli ( 'localhost', 'root', 'yangfan', '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
$_mysqli = new mysqli ( 'localhost', 'root', 'yangfan', '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
$_mysqli = new mysqli ( 'localhost', 'root', 'yangfan', '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
$_mysqli = new mysqli ( 'localhost', 'root', 'yangfan', '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
$_mysqli = new mysqli ( 'localhost', 'root', 'yangfan', '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
$_mysqli = new mysqli ( 'localhost', 'root', 'yangfan', '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
$_mysqli = new mysqli ( 'localhost', 'root', 'yangfan', '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 ();
?>

 

 

 

 

 

 

 

标签:数据库,sql,mysqli,echo,result,tg,第六章,Mysqli,fetch
From: https://blog.51cto.com/u_16171388/6558639

相关文章

  • 文档数据库,图数据库以及不同数据库比较分析
    文档数据库 图数据库:不同的数据库 ......
  • 基于JAVA的springboot班级综合测评管理系统,附源码+数据库+论文+PPT,适合课程设计、毕业
    1、项目介绍随着互联网技术的高速发展,人们生活的各方面都受到互联网技术的影响。现在人们可以通过互联网技术就能实现不出家门就可以通过网络进行系统管理,交易等,而且过程简单、快捷。同样的,在人们的工作生活中,也就需要互联网技术来方便人们的日常工作生活,实现工作办公的自动化处......
  • NoSQL数据库与关系数据库的比较
    1.在原理方面2.在数据规模方面3.在数据库模式方面4.查询效率方面:5.在事务一致性方面:6.在数据完整性方面:7.在可扩展性方面:8.在可用性方面9.在标准化方面:10.在技术支持方面:11.在可维护方面:关系数据库的优势:劣势NoSQL数据库:两种数据库的应用场景:  ......
  • Mysql MyISAM数据库设计2
    CREATETABLEIFNOTEXISTS`e_dxal`(`e_id`int(10)unsignedNOTNULLAUTO_INCREMENTCOMMENT'//id',`e_title`varchar(100)NOTNULLCOMMENT'//标题',`e_cont`textNOTNULLCOMMENT'//内容',`e_time`datetimeNOTNULLC......
  • celery笔记八之数据库操作定时任务
    本文首发于公众号:Hunter后端原文链接:celery笔记八之数据库操作定时任务前面我们介绍定时任务是在celery.py中的app.conf.beat_schedule定义,这一篇笔记我们介绍一下如何在Django系统中的表里来操作这些任务。依赖及migrate操作beat的启动表介绍手动操作定时任务1......
  • SQL数据库中CONVERT的使用
    定义和用法CONVERT()函数是把日期转换为新数据类型的通用函数。CONVERT()函数可以用不同的格式显示日期/时间数据。语法CONVERT(data_type(length),data_to_be_converted,style)data_type(length) 规定目标数据类型(带有可选的长度)。data_to_be_converted 含有需要转换的......
  • 华为云GaussDB践行数字化,护航证券保险高质量发展​ 银行业数字化转型实践交流走进北
    3月31日,由先进数通与华为联合开展的“7+1”系列银行业数字化转型实践交流活动北京站圆满落幕。活动汇聚金融科技先锋企业、金融行业专家和金融机构,共同探讨证券行业保险类业务场景的创新与发展。华为云数据库解决方案架构师章哲在会上围绕华为云GaussDB多年来的技术探索和应用实践......
  • 常用的数据库连接池、配置参数及相应的调优方法
    数据库连接池是一种用于管理和维护数据库连接的技术,不同类型的数据库连接池具体的配置参数和调优方法也是有所不同的。下面分别举例C3P0、DBCP、HikariCP和Druid的常用配置信息和调优建议:C3P0常用配置参数:#连接池中容许的最小连接数目c3p0.minPoolSize=5#连接池中容许......
  • mybatis中数据库连接池切换到更优秀的连接池上
    数据库连接池切换mybatis中数据库连接池比较流行,性能优越的有2个:数据库连接池技术:A.Hikari(springboot默认)追光者B.Druid(德鲁伊)1Druid(德鲁伊)Druid连接池是阿里巴巴开源的数据库连接池项目功能强大,性能优秀,是Java语言最好的数据库连接池之一2Hikari(springboot默认3.把默......
  • c# 操作mysql数据库的时候会出现 插入中文汉字变成问号?或者更新数据库时条件里有汉字,
    在mysql里面执行时没有问题的。c#操作会出现问号或者更新失败。原因是: 链接字符串的时候要设置Charset=utf8;不然就会按默认的服务器设置编码,通常会出问题。1、创建的数据库是按utf8编码格式。 2、表也是utf8格式。3、链接字符串增加Charset=utf8;如:"server=10.167.32......