Mysqli 简单使用笔记

<?php
echo '<pre>';
$mysqli = new mysqli('localhost', 'root', '???');
if ($mysqli-> connect_error) {
echo '连接失败<br/>';
echo '错误信息:' , $mysqli->connect_error, '<br/>';
echo '错误编号:' , $mysqli->connect_errno, '<br/>';
exit();
}
//选择数据库
$mysqli->select_db('tp6');
//设置字符集
$mysqli->query('set names utf8');
//客户端版本
echo $mysqli->client_version , '<br/>';
//客户端信息
echo $mysqli->client_info, '<br/>';
echo $mysqli->get_client_info(), '<br/>';
//服务器版本
echo $mysqli->server_version, '<br/>';
//服务器信息
echo $mysqli->server_info, '<br/>';
echo $mysqli->get_server_info(), '<br/>';
echo '<hr/>';


// ----------------------------------------mysqli增强版扩展-----------------------------------------------


//增删改返回bool, 执行|查询,使用query()
// $sql = 'insert into goods values(null, "罐装百事可乐", 56, 8)';
// $ret = $mysqli->query($sql);
// var_dump($ret);
// echo '返回受影响行数', $mysqli->affected_rows, '<br/>';
// echo '新插入的ID是:', $mysqli->insert_id, '<br/>';
// echo '<hr/>';

//查询数据,返回结果集对象
//$sql = 'select * from goods';
//$result = $mysqli->query($sql);
//$arr = $result->fetch_all(); //默认返回的是索引数组
//$arr = $result->fetch_all(MYSQLI_ASSOC); //可以设置常量,MYSQLI_NUM, MYSQLI_ASSOC, MYSQLI_BOTH
//$arr = $result->fetch_array(); //返回一条索引关联并存的数组, 默认,可设置变量,MYSQLI_ASSOC, MYSQLI_NUM,MYSQLI_BOTH
//$arr = $result->fetch_array(MYSQLI_ASSOC); //返回一条索引关联并存的数组
//$arr = $result->fetch_row(); //返回一条索引数组
//$arr = $result->fetch_assoc(); //返回一条关联数组
//$arr = $result->fetch_object(); //返回一条数据作为对象,字段名为属性名
//$arr = $result->fetch_fields(); //返回全部字段信息
//$arr = $result->fetch_field(); //每调用一次返回一个字段信息
// while($row = $result->fetch_assoc()) {
// print_r($row);
// }
// $result->free_result(); //释放结果集


//----------------------------------------------mysqli预处理语句-----------------------------------
//$sql = 'insert into goods values(?, ?, ?, ?)'; //准备一条sql
//$stmt = $mysqli->prepare($sql); //对语句预处理
//准备参数
// $goods_id = null;
// $goods_name = '苹果7s plush';
// $goods_price = 2361;
// $brand_id = 1;
//绑定参数, 第一个参数是指定后面参数的类型
//$stmt->bind_param('ssdi', $goods_id, $goods_name, $goods_price, $brand_id);
//执行预处理,返回bool
// if ( $stmt->execute() ){
// echo '受影响行数:' , $stmt->affected_rows, '<br/>';
// echo '插入的ID是:' , $stmt->insert_id, '<br/>';
// }else{
// echo '插入失败:', $stmt->error;
// }

 

//查询所有呢?
//$stmt = $mysqli->prepare('select * from goods');
//$stmt->execute();
//从准备好的语句中获取结果集
//$result = $stmt->get_result();
// while($row = $result->fetch_assoc()) {
// print_r($row);
// }
// var_dump($result->fetch_assoc());
// var_dump($result->fetch_assoc());
// $result->free_result();

 

//执行一条
// $stmt = $mysqli->prepare('select * from goods where goods_id = ?');
// $goods_id = 45;
// $stmt->bind_param('i', $goods_id);
// $stmt->execute();
// $result = $stmt->get_result();
// var_dump($result->fetch_assoc());

//-可是以上两种方式虽然可以获取结果集,但似乎不是预处理语句的结果集,不像手册里面那样,试试其他吧
$stmt = $mysqli->prepare('select * from goods');
$stmt->execute();
//传输结果集
var_dump($stmt->store_result());
var_dump($stmt->num_rows);
$stmt->bind_result($id, $name, $price, $brand_id);
//可是fetch,里面好像没有字段名呀
while($stmt->fetch()){
echo $id, '___', $name, '____', $price, '____', $brand_id, '<br/>';
}
$stmt->free_result();
$stmt->close();

//算了,懒得翻了,预处理没有,PDO有就行

 

posted @ 2020-07-02 03:12  我只沾花不惹草  阅读(196)  评论(0编辑  收藏  举报