exit();
}
?>
使用结果集对象的fetch_row方法获取结果集中每一行数据,每一行数据为一个关联数组,并使用list方法将其中的每个数据进行输出。还可以使用输出对象的方式将结果集中的每一行进行输出。
<?php
$mysqli = new mysqli("localhost","root","");
$mysqli->select_db("mydb");
if($mysqli->errno == 0) //判断当前连接是否成功
{
$sql = "SELECT * FROM student";
$result = $mysqli->query($sql);
echo "Result row nums:".$result->num_rows."<br>"; //显示结果集数量
//迭代结果集
while($rowObject = $result->fetch_object())
{
echo "$rowObject->id : $rowObject->name : $rowObject->age : $rowObject->address"."<br>";
}
}
else
{
echo $mysqli->error; //输出当前错误信息
exit();
}
?>
其中使用fetch_object方法将每一行中的数据封装为一个对象,在上面的例子中该对象为$rowObject,数据库中每一列成为该对象的属性,通过该对象调用其属性名称就可以获取对应的字段值。比如获取学生姓名$rowObject->name。
还可以使用fetch_array方法将每一行数据返回为一个关联数组或是一个索引数组,或者同时返回关联数组和索引数组。fetch_array方法的模式参数来指定当前返回数组的模式:
① MYSQLI_ASSOC。返回关联数组,key为字段名,value为字段值。
② MYSQLI_NUM。返回索引数组,返回顺序和查询字段顺序相同。
③ MYSQLI_BOTH。同时返回关联数组和索引数组。默认设置。
<?php
while($row = $result->fetch_array(MYSQLI_ASSOC)) //返回关联数组
{
echo $row['id']. $row['name'].$row['age'].$row['address']."<br>";
}
?>
或
<?php
while($row = $result->fetch_array(MYSQLI_NUM)) //返回索引数组
{
echo $row[0]. $row[1].$row[2].$row[3]."<br>";
}
?>
3.释放内存
如果结果集中数据量巨大并且已经使用完毕后,结果集对象的free方法用于释放结果集占用的内存。一旦调用了free方法,结果集将不再可用。
<?php
...
$result->free(); //释放内存
?>
4.添加、修改和删除操作
使用mysqli对象的query方法依然可以进行对数据库的添加、修改和删除操作,只不过是SQL语句的不同而已。我们以添加数据为例:
<?php
$mysqli = new mysqli("localhost","root","");
$mysqli->select_db("mydb");
if($mysqli->errno == 0) //判断当前连接是否成功
{
$sql = "INSERT INTO student(id,name,age,address) VALUES('8','kay','23','xian')";
$result = $mysqli->query($sql);
echo $mysqli->affected_rows; //输出影响的行数
}
else
{
echo $mysqli->error; //输出当前错误信息







