php之mysqli扩展库

3个类

mysqli                 和连接有关的类

mysqli_reslut     表达了对数据库的查询返回的结果集 

mysqli_stmt        预处理类


mysqli:

__contruct ( $host, $user, $password, $dbname [, $port] )     构造函数,创建一个mysqli对象
mysqli_connect_errno()      返回连接数据库的错误号
mysqli_connect_error()       返回连接数据库的错误内容

/** 
   *下面也可以可以进行数据库连接,但比较少用
   *mysqli_init();
   *mysqli_options();
   *mysqli_read_connect();
   */

获取相关信息
character_set_name();   
get_client_info();
host_info();
server_info();
server_version();


$result = $mysqli->query($sql);             执行sql语句。如果是select语句则返回结果集,如果是其他语句则返回true和false   
errno  返回执行sql语句的错误号
error   返回执行sql语句的错误内容
affected_rows   sql语句的影响行数
insert_id   对于insert语句新插入的行的自动增长id号



multi_query($sql1 . ";" . $sql2 . ";" . $sql3);         一次执行多条语句
$result = $mysqli -> store_reslult();                     获取一个结果集
$mysqli -> next_result();                             将指针指向下一个结果集,如果下一个为空则返回false
$mysqli -> more_results();                                     判断是否还有结果集,返回布尔值   

事务相关:
1.mysql表类型选择InnoDB
2.默认都是自动提交的,要先关闭自动提交 set  autocommit = 0;
3.开启事务。 start  transaction;
4.执行完sql语句后可以用   rollback;  进行回滚
5.如果确定没问题可以提交   commit;

mysqli中都有对应的方法
autocommit ( false );    关闭自动提交
commit ( );                      提交
rollback ( );                      回滚


close();    断开数据库连接




mysqli_result

执行select语句后返回的结果集对象

num_rows    获取行数
field_count    获取列数

对应mysql扩展库的四个方法,每执行一次就会从结果集中取出当前一条记录,默认从第一行开始
也可以使用data_seek($num)来指定,每次执行完指针指向下一行,当结果集中没有记录时则返回false
fetch_array();
fetch_row();
fetch_assoc();
fetch_object()

fetch_field();    与获取行类似,获取到当前字段的信息(包括 name, orgname, max_length, table等属性 ),默认从第一列开始,也可以用field_seek来设置开始列

current_field     当前列的列号

"DESC $tbname"  返回的也是一个表,可以作为结果集来操作


close();/ free(); / free_result();      释放结果集    





mysqli_stmt

1.准备一条语句
$stmt = $mysqli -> stmt_init();       创建mysqli_stmt对象
$sql = " INSERT  INTO user ( name, password, type )  VALUES ( ?, ?, ? ) ";
$stmt->prepare($sql);

或者如下
$stmt = $mysqli -> prepare ($sql);


2.绑定参数(给每个?号传值)
$stmt-> bind_param("ssi", $name, $password, $type );
类型:i 整型  d浮点型  s字符串  b二进制
后面的参数是引用类型,所以必须是变量名,而且可以在绑定之后再修改


3.执行语句
$stmt -> execute();    返回bool值,表明语句执行成功与否
$stmt -> insert_id;
$stmt -> affected_rows;


4.获取结果集
$stmt = $mysqli -> prepare ( " SELECT name, host, password FROM user " );
$stmt -> bind_result ( $name, $host, $pass);
$stmt -> execute();

//返回字段信息
$result = $stmt -> result_metadata();
$field = $result -> fetch_field();    获取字段
$field -> name                                   获取字段名

//获取记录信息
$stmt -> fetch();      从第一行记录开始获取,把每次获取的记录都赋值到绑定的变量。如果获取到了记录返回true,否则返回NULL
echo "$name--$host--$pass";

$stmt -> store_result();    一次性将结果都取出来
$stmt-> num_rows;         返回记录行数

$stmt -> free_result();      用完结果集需要释放


5.关闭对象
$stmt->close();








你可能感兴趣的:(php)