- PHP 原生操作 Mysql
- 原生
PHP
操作Mysql
,如果我们需要在项目中使用,那么需要进行封装一个数据库连接对象,不然得到处写连接代码。
- 用户增删查案例测试,改跟增一样写法,附带 PHP 文件加载的四种方式。
- demo 效果
- db.php 文件
<?php // 主机名 $db_host = "localhost"; // 端口号 $db_port = "3306"; // 用户名 $db_user = "root"; // 密码 $db_pass = "123456"; // 数据库名 $db_name = "test"; // 字符集 $db_charset = "utf8"; // 1、连接 Mysql 服务器,如果连接成功返回 Mysqli 连接对象,如果失败,则返回 false if (!$link = @mysqli_connect($db_host.":".$db_port, $db_user, $db_pass)) { echo "<h2>PHP连接 Mysql 服务器失败!</h2>"; // 输出错误信息 echo "系统错误信息:".mysqli_connect_error(); // 终止程序 exit() 或 die() die(); } // 2、选择数据库,成功返回 true, 失败返回 false if (!mysqli_select_db($link, $db_name)) { echo "<h2>选择 {$db_name} 数据库失败!</h2>"; // 终止程序 exit() 或 die() die(); } // 3、设置字符集,成功返回 true, 失败返回 false,一般都是成功,没必要判断 mysqli_set_charset($link, $db_charset); ?>
- index.php 文件
<?php // 导入公共文件 require_once("./db.php"); // 执行查询语句 $sql = "select * from user"; $result = mysqli_query($link, $sql); // 获取所有行数据 $arrs = mysqli_fetch_all($result, MYSQLI_ASSOC); // print_r($arrs); // 获取学生个数 $count = mysqli_num_rows($result); ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <script> // 添加用户 function addUser() { location.href = "./add.php"; } // 删除用户 function deleteUser(id) { // 询问是否删除 if (window.confirm("确定要删除吗?")) { // 跳转到 delete.php 页面进行删除,只要不是表单发送的都是 GET 请求 location.href = "./delete.php?id="+id; } } // 修改用户 function modifyUser(id) { // 跟添加一样,跳转新页面即可 } </script> </head> <body style="display: flex; align-items: center; flex-direction: column;"> <!-- 提示 --> <h2>总共有 <?php echo $count ?> 个人</h2> <a href="#" onclick="addUser()" style="margin-bottom: 20px;">添加用户</a> <!-- 列表 --> <table width="300" border="1" rules="all" cellpadding="5"> <!-- 头部 --> <tr bgcolor="#ccc"> <th>id</th> <th>名称</th> <th>年龄</th> <th>操作</th> </tr> <!-- 展示数据 --> <?php foreach ($arrs as $arr) { ?> <tr style="text-align: center;"> <td><?php echo $arr["id"] ?></td> <td><?php echo $arr["name"] ?></td> <td><?php echo $arr["age"] ?></td> <!-- 操作 --> <td> <a href="#" onclick="modifyUser(<?php echo $arr['id'] ?>)">修改</a> <!-- 删除用户操作 --> <a href="#" onclick="deleteUser(<?php echo $arr['id'] ?>)">删除</a> </td> </tr> <?php } ?> </table> </body> </html>
- add.php 文件
<?php // 导入数据库公共代码 require_once("./db.php"); // 判断表单是否提交 if (isset($_POST["submit"])) { print_r($_POST); // 获取需要添加的数据 $name = $_POST["name"]; $age = $_POST["age"]; // 构建插入 sql 语句 $sql = "insert into user (name, age) values ('$name', $age)"; // 执行 sql 语句 if (mysqli_query($link, $sql)) { echo "<h2>用户 {$name} 新增成功!</h2>"; // 告诉浏览器执行代码:等待1秒,并跳转到 index.php 文件 header("refresh:1;url=./index.php"); // 终止程序 die(); }else{ echo "<h2>用户 {$name} 新增失败!</h2>"; // 终止程序 die(); } } ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> <!-- from 表单提交 --> <form method="post"> 姓名:<input type="text" name="name"> 年龄:<input type="text" name="age"> <input type="submit" name="submit" value="提交"> <input type="reset" value="重置"> </form> </body> </html>
- delete.php 文件
<?php // 导入数据库公共代码 require_once("./db.php"); // 获取地址栏从传递的id,只要不是表单发送的都是 GET 请求 $id = $_GET["id"]; // 构建删除 sql 语句 $sql = "delete from user where id=$id"; // 执行 sql 语句 if (mysqli_query($link, $sql)) { echo "<h2>id={$id}的用户记录删除成功!</h2>"; // 告诉浏览器执行代码:等待1秒,并跳转到 index.php 文件 header("refresh:1;url=./index.php"); // 终止程序 die(); }else{ echo "<h2>id={$id}的用户记录删除失败!</h2>"; // 告诉浏览器执行代码:等待1秒,并跳转到 index.php 文件 header("refresh:1;url=./index.php"); // 终止程序 die(); } ?>