分享

PHP 操作数据库

 流楚丶格念 2022-01-14

文章目录

PHP 操作数据库

如何在 PHP 代码中操作数据库是我们能否在自己的程序中使用数据库的核心。

数据库扩展:http:///manual/zh/refs.database.php

如果需要使用 MySQLi 扩展,需要在 php.ini 文件中打开这个扩展(解除注释)

标准五步查询+

// 假定数据库用户名:root,密码:yangyongli,数据库:test
$connection = mysqli_connect("localhost", "root", "yangyongli", "test");

// 设置字符集为UTF-8 防止出现乱码
mysqli_set_charset($connection , 'utf8');

if (!$connection) {
// 如果连接失败报错
die('<h1>Connect Error (' . mysqli_connect_errno() . ') ' . mysqli_connect_error() . '</h1>');
}

// 查询语句
$sql = "select * from users";
$result = mysqli_query($connection, $sql);

// 查询数据填充到关联数组
while ($row = mysqli_fetch_assoc($result)) {
echo $row["id"] . " ‐ " . $row["username"];
}

// 释放结果集
mysqli_free_result($result); 
mysqli_close($connection);

mysqli:

  • http:///manual/zh/book.mysqli.php

  • http://www.runoob.com/php/php-ref-mysqli.html

*pdo:http:///manual/zh/ref.pdo-mysql.php

3.1. 执行查询语句

解析代码

<?php

// 能通过PHP代码执行一个SQL语句得到查询的结果
// mb_strlen(str)
// 类似于之前的宽字符集函数问题,mysqli是一个额外的扩展
// 如果想要使用这个扩展提供的函数,必须开启扩展
// extension_dir
// 解除注释 extension=php_mysqli.dll
//
// 如果需要在调用函数时忽略错误或者警告可以在函数名之前加上 @

// 1. 建立与数据库服务器之间的连接
$connection = mysqli_connect('127.0.0.1', 'root', '123456', 'demo2');

if (!$connection) {
  // 连接数据库失败
  exit('<h1>连接数据库失败</h1>');
}

// 基于刚刚创建的连接对象执行一次查询操作
// 得到的是一个查询对象,这个查询对象可以用来再到数据一行一行拿数据
$query = mysqli_query($connection, 'select * from users;');
// var_dump($query);

// 等着三蹦子去取数据  取一行
// $row = mysqli_fetch_assoc($query);
// while ($row) {
//   var_dump($row);
//   $row = mysqli_fetch_assoc($query);
// }
// var_dump($row);

// while
//

while ($row = mysqli_fetch_assoc($query)) {
  var_dump($row);
}

功能代码

<?php

// 查询数据的查询语句

// 1. 建立与数据库服务器之间的连接
$connection = mysqli_connect('127.0.0.1', 'root', '123456', 'demo2');

// 1. 必须在查询数据之前
// 2. 必须传入连接对象和编码
mysqli_set_charset($connection, 'utf8');
// mysqli_query($connection, 'set names utf8;');

if (!$connection) {
  // 连接数据库失败
  exit('<h1>连接数据库失败</h1>');
}

// 基于刚刚创建的连接对象执行一次查询操作
$query = mysqli_query($connection, 'select * from users;');

if (!$query) {
  exit('<h1>查询失败</h1>');
}

// 遍历结果集
while ($row = mysqli_fetch_assoc($query)) {
  var_dump($row);
}

// 释放查询结果集
mysqli_free_result($query);

// 炸桥 关闭连接
mysqli_close($connection);

3.2. 执行非查询语句

删除,更新操作用mysqli_affected_rows()看最终结果影响了几行

<?php

// 增删改数据的查询语句

// 1. 建立与数据库服务器之间的连接
$connection = mysqli_connect('127.0.0.1', 'root', '123456', 'demo2');

if (!$connection) {
  // 连接数据库失败
  exit('<h1>连接数据库失败</h1>');
}

// 基于刚刚创建的连接对象执行一次查询操作
$query = mysqli_query($connection, 'delete from users where id = 5;');

if (!$query) {
  exit('<h1>查询失败</h1>');
}

// 如何拿到受影响行
// 传入的一定是连接对象
$rows = mysqli_affected_rows($connection);

var_dump($rows);


// 炸桥 关闭连接
mysqli_close($connection);

查询结果中文显示乱码问题

查询数据之前设置一下连接对象和显示编码就解决了

// 1. 必须在查询数据之前
// 2. 必须传入连接对象和编码
mysqli_set_charset($connection, 'utf8');

案例:XXX管理系统

通用管理系统php+mysql模板

文章链接:
https://yangyongli.blog.csdn.net/article/details/113005923
项目链接:https://download.csdn.net/download/weixin_45525272/14922957

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约