第六章 使用Mysqli操作数据库

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 ();
?>

猜你喜欢

转载自onestopweb.iteye.com/blog/2327976