mysqli操作数据库

1、mysqli面向过程

    针对成功的 SELECT、SHOW、DESCRIBE 或 EXPLAIN 查询,将返回一个 mysqli_result 对象。针对其他成功的查询,将返回 TRUE。如果失败,则返回 FALSE。

    mysqli查询操作:

header('content-type:text/html;charset=utf-8');
//1.连接
$link=mysqli_connect('localhost','root','','test') or die('Connect Error:'.mysqli_connect_errno().":".mysqli_connect_error());
//2.设置编码方式
mysqli_set_charset($link,'UTF8');
//3.执行SQL查询
$sql="SELECT * FROM users";
$result=mysqli_query($link,$sql);
if($result && mysqli_num_rows($result)>0){
    while($row=mysqli_fetch_array($result, MYSQLI_ASSOC)){
        //print_r($row);
        $rows[]=$row;
    }
}
var_dump($rows);
//释放结果集
mysqli_free_result($result);
mysqli_close($link);

    

冷暖自知一抹茶ck

    mysqli插入单条数据操作

header('content-type:text/html;charset=utf-8');
//1.连接
$link=mysqli_connect('localhost','root','','test') or die('Connect Error:'.mysqli_connect_errno().":".mysqli_connect_error());
//2.设置编码方式
mysqli_set_charset($link,'UTF8');
//3.执行SQL查询
$sql="INSERT users(name,tel,sex) VALUES('冷暖自知一抹茶ck','18210890833','男');";
$res=mysqli_query($link, $sql);
 if($res){
	echo 'AUTO_INCREMENT:'.mysqli_insert_id($link)."<br/>";
	echo 'AFFECTED ROWS:'.mysqli_affected_rows($link);
}else{
	echo 'ERROR:';
	echo mysqli_errno($link).':'.mysqli_error($link);
}

//4.关闭连接
mysqli_close($link);

    mysqli插入多条数据操作:

header('content-type:text/html;charset=utf-8');
//1.连接
$link=mysqli_connect('localhost','root','','test') or die('Connect Error:'.mysqli_connect_errno().":".mysqli_connect_error());
//2.设置编码方式
mysqli_set_charset($link,'UTF8');
//3.执行SQL查询
$sql="UPDATE users SET sex='女' WHERE id=1;";
$sql.="DELETE FROM users WHERE id=11";
$res=mysqli_multi_query($link, $sql);    //执行多条语句查询
var_dump($res);
//4.关闭连接
mysqli_close($link);

    mysqli预处理语句:

header('content-type:text/html;charset=utf-8');
//1.连接
$link=mysqli_connect('localhost','root','','test') or die('Connect Error:'.mysqli_connect_errno().":".mysqli_connect_error());
//2.设置编码方式
mysqli_set_charset($link,'UTF8');
//3.执行SQL查询
$sql="INSERT users(name,tel,sex) VALUES(?,?,?);";
$stmt=mysqli_prepare($link, $sql);
mysqli_stmt_bind_param($stmt, 'sss',$username,$tel,$sex);
$username='冷暖自知一抹茶ck2';
$tel='15188305549';
$sex='女';
$res=mysqli_stmt_execute($stmt);
var_dump($res);
mysqli_close($link);


2、mysqli面向对象:

    mysqli查询数据:

$mysqli=new mysqli('localhost','root','','test');
if($mysqli->errno){
	die('Connect Error'.$mysqli->error);
}
$mysqli->set_charset('UTF8');
$username='冷暖自知一抹茶ck';
$username=$mysqli->escape_string($username);

$sql="SELECT * FROM users WHERE name='{$username}'";
$mysqli_result=$mysqli->query($sql);
if($mysqli_result && $num = $mysqli_result->num_rows>0){
    $row=$mysqli_result->fetch_assoc();
	var_dump($row);
}

$mysqli_result->close();
$mysqli->close();

    mysqli预处理语句:

header('content-type:text/html;charset=utf-8');
$mysqli=new mysqli('localhost','root','','test');
if($mysqli->errno){
	die('Connect Error'.$mysqli->error);
}
$mysqli->set_charset('UTF8');

$username = "冷暖自知一抹茶ck";
$sql="SELECT * FROM users WHERE name = ? ";
$mysqli_stmt=$mysqli->prepare($sql);                    //准备预处理语句
$mysqli_stmt->bind_param('s',$username);     			//绑定参数   s,i,d
if($mysqli_stmt->execute()){                            //执行预处理语句
	$mysqli_stmt->store_result();
	if($mysqli_stmt->num_rows>0){
		echo '登陆成功';
	}else{
		echo '登陆失败';
	}
}
//释放结果集
$mysqli_stmt->free_result();
//关闭预处理语句
$mysqli_stmt->close();
$mysqli->close();



header('content-type:text/html;charset=utf-8');
date_default_timezone_set('PRC'); //设置中国时区 


$mysqli=new mysqli('localhost','root','','test');
if($mysqli->errno){
	die('Connect Error'.$mysqli->error);
}
$mysqli->set_charset('UTF8');

$username = "冷暖自知一抹茶ck";
$sql="SELECT * FROM users WHERE name = ? ";
$mysqli_stmt=$mysqli->prepare($sql);                    //准备预处理语句
$mysqli_stmt->bind_param('s',$username);     			//绑定参数   s,i,d
if($mysqli_stmt->execute()){                            //执行预处理语句
	$mysqli_stmt->bind_result($id,$username,$tel,$sex);    //bind_result():绑定结果集中的值到变量
	//遍历结果集
	while($row = $mysqli_stmt->fetch()){
		echo '编号:'.$id;
		echo '用户名:'.$username;
		echo '电话: '.$tel;
		echo '性别:'.$sex;
	}

}
//释放结果集
$mysqli_stmt->free_result();
//关闭预处理语句
$mysqli_stmt->close();
$mysqli->close();

  

3、mysqli事务

header('content-type:text/html;charset=utf-8');
$mysqli=new mysqli('localhost','root','','test');
if($mysqli->errno){
	die('Connect Error'.$mysqli->error);
}
$mysqli->set_charset('UTF8');

$mysqli->autocommit(FALSE);
$sql="UPDATE users SET sex='男' WHERE id='1'";
$res=$mysqli->query($sql);
$res_affect=$mysqli->affected_rows;

$sql1="UPDATE users SET name='冷暖自知一抹茶ck4' WHERE id=2";
$res1=$mysqli->query($sql1);
$res1_affect=$mysqli->affected_rows;
var_dump($res);
var_dump($res1);
if($res && $res_affect > 0 && $res1 && $res1_affect>0){
	$mysqli->commit();
	echo '更新成功';
	$mysqli->autocommit(TRUE);
}else{
	$mysqli->rollback();
	echo '更新失败';
}

$mysqli->close();

  

4、mysqli--tip:

 $mysqli = new mysqli('localhost','root','root');    //建立到MySQL数据库的连接
 $mysqli->select_db('test');    //打开指定的数据库
 
 $mysql = new mysqli();
  $mysqli ->connect('localhost','root','root');
  $mysqli->select_db('test');
  
  
  header('content-type:text/html;charset=utf-8');
    //1.建立到MySQL的连接
    $mysqli = @new mysqli('localhost','root','root','test');     //建立连接的同时打开指定数据库
    if($mysqli->connect_errno){                                     //$mysqli->connect_errno:得到连接产生的错误编号
        die('Connect Error:'.$mysqli->connect_error());    //$mysqli->connect_error:得到连接产生的错误信息
    }
    //2.设置默认的客户端编码方式utf8
    $mysqli->set_charset('utf8');
    //3.执行SQL查询
    $sql=<<     CREATE TABLE IF NOT EXISTS mysqli(
        id TINYINT UNSIGNED AUTO_INCREMENT KEY,
        username VARCHAR(20) NOT NULL
    );
EOF;
    $res = $mysqli->query($sql);        //执行单条SQL语句,只能执行一条SQL语句
    var_dump($res);
    /*
     SELECT/DESC/DESCRIBE/SHOW/EXPLAIN执行成功返回mysqli_result对象,执行失败返回false
     对于其它SQL语句的执行,执行成功返回true,否则返回false
     */
    //4、关闭连接
    $mysqli->close();//关闭连接  
    
    
    //针对多条SQL语句的查询
    //$sql="INSERT user(username,password,age) VALUES('imooc3','imooc3',32);";
    //$sql.="UPDATE1 user SET age=5 WHERE id=28;";
    //$sql.="DELETE FROM user WHERE id=25;";
        //use_result()/store_result():获取第一条查询产生的结果集
        //more_results():检测是否有更多的结果集
        //next_result():将结果集指针向下移动一位
    //if($mysqli->multi_query($sql)){
    //    do{
    //        if($mysqli_result=$mysqli->store_result()){
    //            $rows[]=$mysqli_result->fetch_all(MYSQLI_ASSOC);
    //        }
    //    }while($mysqli->more_results() && $mysqli->next_result());
    //}else{
    //    echo $mysqli->error;
    //}
    //print_r($rows);
    
    
    $mysqli->connect_errno;//得到连接产生的错误编号
    $mysqli->connect_error;//得到连接产生的错误信息
    $mysqli->errno;//得到上一步操作产生的错误号
    $mysqli->error;//得到上一步操作产生的错误信息
    $mysqli->insert_id;//得到上一插入操作产生的 auto_increment 的值
    $mysqli->affected_rows;//得到上一步操作产生的受影响的记录条数,affected_rows值为3种:1. 受影响的记录条数; 2. -1,代表SQL语句有问题 ;3. 0,代表没有受影响记录的条数
    $mysqli_result=$mysqli->query($sql);
    $mysqli_result->num_rows;
    //获取结果集中所有记录,默认返回的是二维的(索引+索引的形式)
    $rows = $mysqli_result->fetch_all(MYSQLI_NUM|MYSQLI_ASSOC| MYSQLI_BOTH);    //可选参数 MYSQLI_NUM、MYSQLI_ASSOC、 MYSQLI_BOTH
    $row=$mysqli_result->fetch_row();      //取得结果集中一条记录作为索引数组返回
    $row=$mysqli_result->fetch_assoc();    //取得结果集中的一条记录作为关联数组返回
    $row=$mysqli_result->fetch_array();
    $row=$mysqli_result->fetch_array(MYSQLI_ASSOC);
    $row=$mysqli_result->fetch_object();
    //移动结果集内部指针
    $mysqli_result->data_seek(0);
    $row=$mysqli_result->fetch_assoc();
    print_r($row);
    while($row = $mysqli_result->fetch_assoc()){
        print_r($row);
    }
    '客户端的信息:'.$mysqli->client_info;
    '客户端的版本:'.$mysqli->client_version;
    '服务器端信息:'.$mysqli->server_info;
    '服务器版本:'.$mysqli->server_version;


冷暖自知一抹茶ck
请先登录后发表评论
  • 最新评论
  • 总共0条评论