博主信息
博文 32
粉丝 0
评论 0
访问量 35335
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
PHP MySqli连接操作数据库
Yang_Sir
原创
956人浏览过

mysqli:只用于连接MySQL数据
mysqli对数据库的操作方法与PDO类似,可以通过query方法直接执行,也可以通过prepare()方法预处理

1.连接数据库

  • 创建一个mysqli连接对象,传入连接参数,连接数据库
  1. //配置数据库参数
  2. $config = [
  3. 'host'=>'127.0.0.1',
  4. 'dbname'=>'www.merchant.office',
  5. 'username'=>'merchant',
  6. 'password'=>'merchant',
  7. 'charset'=>'utf8',
  8. 'port'=>'3306',
  9. ];
  10. extract($config);//将关联数组扩展为变量,键为变量名,值为数组元素的值
  11. $mysqli = new mysqli($host, $username, $password, $dbname);//连接数据库
  12. if($mysqli->connect_errno)die('数据库连接失败:'.$mysqli->connect_errno);//判断是否连接失败,输出失败原因
  13. $mysqli->set_charset($charset);

2.创建一张商户信息表

  • 编写建表sql语句,调用mysqli中的query()方法执行
  1. $sql = "CREATE TABLE IF not EXISTS `goods`(
  2. `id` int(10) NOT NULL auto_increment,
  3. `name` VARCHAR(60) not null,
  4. `model` VARCHAR(30) ,
  5. `price` DECIMAL(8,2),
  6. `number` VARCHAR(8),
  7. `status` int(1) null DEFAULT 0 ,
  8. PRIMARY KEY(`id`)
  9. )ENGINE=INNODB DEFAULT CHARSET=utf8;";
  10. var_dump($mysqli->query($sql));//执行并打印执行结果

3.新增数据

  • foreach循环把数组中的数据处理后insert到数据表中
  • 通过参数绑定方式新增数据
  1. $goods=[['华为手机','P40','5999','300'],['小米手机','米10','2999','320'],['苹果手机','XR','8999','610'],
  2. ['华为手机','P30','3599','500'],['小米手机','米9','2099','300'],['苹果手机','8s','5999','110'],
  3. ];
  4. $i=0;
  5. $str = '';
  6. //循环插入数据
  7. foreach($goods as $value){
  8. array_walk($value,function(&$item){
  9. return $item = "'".$item."'";
  10. });
  11. $data = implode(",",$value);
  12. $sql = "insert into `goods`(`name`,`model`,`price`,`number`) value({$data})";
  13. //echo $sql,'<br>';
  14. if($mysqli->query($sql)) echo '插入第:'.++$i.'条<br>';//打印插入的条数
  15. }
  16. //通过参数绑定方式新增数据
  17. $sql = "insert into `goods`(`name`,`model`,`price`,`number`) value(?,?,?,?)";
  18. $query = $mysqli->prepare($sql);
  19. $name='oppo';$model='V8';$price='3599';$number='685';
  20. $query->bind_param('ssss',$name,$model,$price,$number);
  21. $query->execute();
  22. echo $mysqli->insert_id;

4.查询、修改、删除

  • mysqli执行query()方法后返回一个结果集对象,
  • 查询操作,通过fetch_assoc()fetch_all()fetch_row()等方法获取数据
  • 更新、删除操作,通过affected_rows属性获取受影响的记录数
  1. //查询数据
  2. $sql = "select * from goods where id>2";
  3. $res_fetch = $mysqli->query($sql);
  4. var_dump($res);
  5. print_r($res_fetch->fetch_assoc());//获取一条数据,返回关联数组
  6. print_r($res_fetch->fetch_all(MYSQLI_ASSOC));//获取全部数据
  7. print_r($res_fetch->fetch_row());//获取一条数据,返回索引数组
  8. $res_fetch->fetch_array(MYSQLI_ASSOC);//每次获取一行,指针下移
  9. //循环打印:
  10. while($res = $res_fetch->fetch_array(MYSQLI_ASSOC)){
  11. print_r($res);
  12. }
  13. //更新数据
  14. $sql = "update `goods` set `status`=1 where id<4";
  15. $mysqli->query($sql);
  16. echo '受影响记录数:'.$mysqli->affected_rows;//受影响记录数:3
  17. //删除数据
  18. $sql = "delete from `goods` where id<5";
  19. $mysqli->query($sql);
  20. echo '受影响记录数:'.$mysqli->affected_rows;//受影响记录数:4
  21. //关闭连接
  22. mysqli_close($mysqli);
批改老师:天蓬老师天蓬老师

批改状态:合格

老师批语:代码整洁规范, 不错的, 少了一个总结
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学