<?php

header('content-Type:text/html;charset=utf-8');//设置页面编码，如果文件是gbk编码，则charset也应用gbk



function connect() {
	$link = mysqli_connect("localhost", "root", "123456", "employees");//面向过程
	$link = new mysqli("localhost", "root", "123456", "employees");//面向对象

	$link->query("SET NAMES utf8");//执行语句
	
	mysqli_set_charset($link, 'utf8');//面向过程
	$link->set_charset('utf8');//面向对象
	
	return $link;
}

$link = connect();

//print_r($link);
$sql = 'select * from employees limit 10';
$result = mysqli_query($link, $sql);//面向过程
$result = $link->query($sql);//面向对象
//print_r($result);



//fetch_all、fetch_array、fetch_assoc与fetch_row
$result->data_seek(0);
var_dump('fetch_all()方法');
$data = $result->fetch_all();
print_r($data);

//fetch_array获取一条数据
$result->data_seek(0);
var_dump('fetch_array()方法');
$data = $result->fetch_array(MYSQLI_NUM);
print_r($data);

//fetch_assoc获取多条数据 有字段名
$result->data_seek(0);//0 为重置指针到起始
var_dump('fetch_assoc()方法');
$data = [];
$data = $result->fetch_assoc();
print_r($data);

//fetch_row获取一条数据
var_dump('fetch_row()方法');
$result->data_seek(0);
$data = $result->fetch_row();
print_r($data);

//获取字段信息 返回是stdClass对象
var_dump('fetch_fields方法');
$fields = $result->fetch_fields();
print_r($fields);

var_dump('fetch_field方法');
$result->field_seek(1);
$fields = $result->fetch_field();
print_r($fields);

$result->data_seek(0);
//fetch_object 获取stdClass没有table等字段
var_dump('fetch_object方法');
$data = $result->fetch_object();
print_r($data);

//fetch_field_direct
var_dump('fetch_field_direct()方法');
$data = $result->fetch_field_direct(1);
print_r($data);

//$sql = "insert into employees(`birth_date`,`first_name`,`last_name`,`gender`,`hire_date`) values ('1988-10-9', 'pw', 'strick', 'M', '1988-10-9')";
//$result = $link->query($sql);

//var_dump('affected_rows受影响行数');
//var_dump($link->affected_rows);//受影响行数

//var_dump('insert_id主键');
//var_dump($link->insert_id);//主键
//print_r(mysqli_error($link));

//预处理
//添加
/* $sql = "insert into employees(`birth_date`,`first_name`,`last_name`,`gender`,`hire_date`) values (?,?,?,?,?)";
$stmt = $link->prepare($sql);//获得预处理对象
$birth_date = '1989-10-9';//必须得用变量赋值
$first_name = 'pw2';
$last_name = 'strick2';
$gender = 'M';
$hire_date = '1988-10-9';
$stmt->bind_param('sssss', $birth_date, $first_name, $last_name, $gender, $hire_date);//绑定时使用变量绑定
$stmt->execute();//执行预处理

var_dump('insert_id主键');
var_dump($stmt->insert_id);
var_dump('affected_rows受影响行数');
var_dump($stmt->affected_rows); */

//查询
$sql = 'select * from employees limit ?';
$stmt = $link->prepare($sql);
$count = 10;
$stmt->bind_param("i", $count);
$stmt->execute();
$result = $stmt->get_result();//结果集取后的操作就和之前一样了
print_r($result);