首先:使用mysqli扩展就要使用面向对象的编程方式进行开发
Mysqli :
作用范围:返回结果集(query)对象之前;也就是到执行query之前的所有处理
1、连接数据库:
$mysqli-> new mysqli(“localhost”,”root”,”123”,”mysql”);
2、连接错误处理: 注意:这两个错误处理函数不是mysqli的,它是属于php的内置函数
If(Mysqli_connect_errno()){
Echo“连接失败”.mysqli_connect_error();
$mysqli=null;
Exit;
}
Mysqli_connect_errno()
这个是检查PHP是否连接上MYSQL,就是一个判断函数
mysqli_connect_error()
产生错误的详细信息
断开连接:
Mysqli->close();
Mysqli类的方法:
1、Get_client_info() 获取客户端版本信息
2、Get_host_info() 返回连接类型; 如:localhost
3、Get_server_info() 返回mysql服务器的版本
4、query()
执行sql语句,可以返回影响的行数或者是资源值
接收内容用query()做判断条件就用real_query();
5、real_query()
如果成功则返回真的,失败则返回假的。通常用作判断条件
6、Multi_query()
这个函数很强大课一次执行多条sql语句
注意:每条sql语句之间要用 ;分开
例如:$sql = "setnames utf8; select * from tab_fpage; select * from tab_fpage";
7、Store_result()
转让结果集;
注意:这里的结果集定义是:每条select语句返回一个结果集
Mysqli_result结果集:
$result->$mysqli->quert($sql);
这条语句执行完之后返回的结果集就相当于创建了一个结果集类,可以调用它自己的属性和方法
1、返回结果行数:
$rows =$result->num_rows;
2、返回结果列数:
$cols =$result->fielt_count;
3、移动记录到:
$result->data_seek(int);
与之相对应的field_seek(int)移动对应的列到
4、释放结果集:
$result->free();
5、读取下一个结果集:如果没有就返回false:
Next_result();
6、当前列:
$result->Current_field
当前列信息:
$field = $result->fetch_field(); 返回值是一个对象
1、真实列名:
$field->orgname
2、列名(重命名的):
$field->name
3、该列中的最大长度值:
$field->max_length
4、所在表名(重命名的)
$field->orgtable
5、所在表名(重命名的):
$field->table
……………
* 接下来看下面这个例子结合了以上的大部分函数:
//定义多条sql语句,中间用;分隔
$sql = "set names utf8; select *from tab_fpage; select * from tab_fpage";
//执行多条语句
if($mysqli->multi_query($sql)){
do{
//转让结果集
if($res =$mysqli->store_result()){
//查看结果集中列的数量
$res->field_count;
//索引数组
while($arr =$res->fetch_row()){
foreach ($arras $value){
//echo$value."<br>";
//retult
echo "当前列".$res->current_field."<br>".$res->num_rows."行<br>".$res->field_count."列<br>";
//指定显示某一列
//$res->field_seek(2);
//echo "当前列".$res->current_field."<br>".$res->num_rows."行<br>".$res->field_count."列<br>";
//返回一个列中的详细信息,返回值是一个对象
$aa =$res->fetch_field();
//当前列信息field
echo "最大长度:".$aa->max_length."<br>重命名列名:".$aa->name."<br>真实列名:".$aa->orgname;
}
}
echo"<br><br><br>";
}
}
//检查是否还有结果集,有返回true,没有返回false
while($mysqli->next_result());
}