连接数据库常用的函数

  1. mysqli_connect(主机IP,用户名,密码,数据库名,端口号) // 端口号如果是3306可以省略
  2. mysqli_connect_error():获取连接数据库的错误信息
  3. mysqli_connect_erron():获取连接数据库的错误代码
  4. mysqli_set_charset(连接对象,字符编码)

连接示例:连接失败的例子

  1. <?php
  2. header("Content-Type: text/html","charse: utf-8");
  3. # 连接数据库
  4. $conn = @mysqli_connect('localhost','root','Admin123','junglezts','3306');
  5. # 设置数据库字符编码,这里如果连接失败是无法设置的。
  6. mysqli_set_charset($conn,'utf8');
  7. # 如果连接失败
  8. if(mysqli_connect_error()){
  9. // 输入错误代号,错误信息。
  10. echo "错误号:".mysqli_connect_errno(),"<br>";
  11. echo "错误信息:".mysqli_connect_error();
  12. }
  13. ?>

数据库操作语句,增加、删除、更改的结果返回都是TrueFasle

  1. -- 增加
  2. insert into 表名 (字段1,字段2,字段...) values (字段值1,字段值2,字段值...);
  3. -- 删除,整行伤处数据
  4. delete from 表名 where 字段名 = 字段值 and ...;
  5. -- 更改
  6. update 表名 set 字段名 = '字段值' where 字段名 = 字段值 and ...

常用的PHP函数

  1. mysqli_query():执行SQL语句
  2. mysqli_query_id():获取插入纪录自动增长的ID
  3. mysqli_affected_rows():受影响的记录数
  4. mysqli_error():SQL语句执行的错误信息
  5. mysqli_errno():SQL语句执行的错误码
  1. <?php
  2. # 操作数据库
  3. $conn = mysqli_connect('localhost','root','Admin123','junglezt','3306');
  4. # 设置字符编码
  5. mysqli_set_charset($conn,"utf8");
  6. # 执行SQL语句
  7. $sql = "insert into user values (1,'zhangsan','123123')";
  8. $mysql_resp = mysqli_query($conn,$sql);
  9. # 查询返回结果
  10. var_dump($mysql_resp);
  11. ?>

成功执行SQL语句

测试函数

  1. <?php
  2. # 操作数据库
  3. $conn = mysqli_connect('localhost','root','Admin123','junglezt','3306');
  4. # 设置字符编码
  5. mysqli_set_charset($conn,"utf8");
  6. # 执行SQL语句
  7. $sql = "insert into user values ( ,'LQL','azt1314')";
  8. $mysql_resp = mysqli_query($conn,$sql);
  9. if ($mysql_resp){
  10. echo "自动增长的编号是:".mysqli_insert_id($conn),"<br/>";
  11. echo "受影响的行数:".mysqli_affected_rows($conn);
  12. }else{
  13. echo "SQL查询错误信息:".mysqli_error($conn),"<br/>";
  14. echo "SQL查询错误码:".mysqli_errno($conn);
  15. }
  16. ?>

  1. mysqli_fetch_row() -- 将对象中的一条数据匹配成索引数组(数字下标),指针下移一条
  2. mysqli_fetch_assoc() -- 将对象中的一条数据匹配成关联数组(字段下标),指针下移一条
  3. mysqli_fetch_array() -- 经对象中的一条数据匹配成索引和关联数组(数字、字段下标各一种),指针下移一条
  4. mysqli_fetch_all() -- 匹配所有
  5. mysqli_num_rows() -- 返回的行数
  6. mysqli_num_fields() -- 返回的列数
  7. mysqli_free_result() -- 销毁结果集合
  8. mysqli_close() -- 关闭连接

示例:

  1. <?php
  2. # 连接数据库
  3. $conn = mysqli_connect('localhost','root','Admin123','junglezt','3306');
  4. # 设置字符集
  5. mysqli_set_charset($conn,'utf8');
  6. # 进行 SQL 查询
  7. $sql = 'select * from user';
  8. $result = mysqli_query($conn,$sql);
  9. # 取出查询中每行的值
  10. // $row1 = mysqli_fetch_assoc($result);
  11. // $row2 = mysqli_fetch_row($result);
  12. // $row3 = mysqli_fetch_array($result);
  13. // echo "<pre>";
  14. // print_r($row1);
  15. // print_r($row2);
  16. // print_r($row3);
  17. # 查询返回的行数、列数
  18. // $row = mysqli_num_rows($result);
  19. // $list = mysqli_num_fields($result);
  20. // echo $row,"--",$list;
  21. 循环查询中所有字段的内容
  22. foreach(mysqli_fetch_all($result) as $resp){
  23. echo "ID : ".$resp[0]."\n";
  24. echo "usernmae : ".$resp[1]."\n";
  25. echo "password : ".$resp[2]."\n";
  26. echo "\n";
  27. }
  28. # 销毁结果集合
  29. // mysqli_free_result($result);
  30. // var_dump($result);
  31. # 断开连接
  32. // mysqli_close($conn);
  33. ?>
  1. <?php
  2. # 连接数据库
  3. $conn = mysqli_connect('localhost','root','Admin123','junglezt','3306') or die('数据库连接失败'.mysqli_connect_error());
  4. ?>
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1">
  6. <title>用户管理</title>
  7. <style type="text/css">
  8. body{
  9. background-image: url('./img/bg.jpg');
  10. background-size: 100% ;
  11. background-repeat: no-repeat;
  12. }
  13. table{
  14. ackground-color: #00000060;
  15. border: 1px solid #000000;
  16. margin: auto;
  17. margin-top: 10%;
  18. }
  19. td{
  20. padding: 5px;
  21. border: 1px solid #000000;
  22. }
  23. .adduser{
  24. margin-top: 10px;
  25. margin-left: 510px;
  26. font-size: 20px;
  27. }
  28. </style>
  29. </head>
  30. <body>
  31. <?php
  32. include "./inc/conn.php";
  33. $sql = 'select * from user';
  34. $result = mysqli_query($conn,$sql);
  35. $link = mysqli_fetch_all($result);
  36. ?>
  37. <table>
  38. <th>ID</th> <th>用户名</th> <th>密码</th> <th>修改</th> <th>删除</th>
  39. <?php foreach($link as $resp):?>
  40. <tr>
  41. <td><?php echo $resp[0]?></td>
  42. <td><?php echo $resp[1]?></td>
  43. <td><?php echo $resp[2]?></td>
  44. <td><a href="./update.php?user=<?php echo $resp[1]?>"><input type="submit" name="submit" value="修改"></a></td>
  45. <td><a onclick="if(window.confirm('确定要删除吗?'))location.href='./del.php?id=<?php echo $resp[0]?>'"><input type="submit" name="submit" value="删除"></a></td>
  46. </tr>
  47. <?php endforeach;?>
  48. </table>
  49. <div>
  50. <a href="./insert.php"><input type="submit" name="submit" value="创建" class="adduser"></a>
  51. </div>
  52. </body>
  53. </html>
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1">
  6. <title>修改用户信息</title>
  7. </head>
  8. <body>
  9. <?php
  10. include "./inc/conn.php";
  11. $user = $_GET['user'];
  12. echo "当前用户是:{$user}";
  13. ?>
  14. <form action="" method="POST">
  15. 新的用户名:<input type="text" name="new_name"><br>
  16. 旧密码:<input type="password" name="password"><br>
  17. 新密码:<input type="password" name="new_pass"><br>
  18. <input type="submit" name="修改">
  19. </form>
  20. <?php
  21. $new_name = $_POST['new_name'];
  22. $new_pass = $_POST['new_pass'];
  23. $result = mysqli_query($conn,"select * from user where username='{$user}'");
  24. @$row_info = mysqli_fetch_row($result);
  25. if ($row_info[1] == $user){
  26. if (!empty($new_name) && !empty($new_pass)){
  27. if ($row_info[2] === $_POST['password']){
  28. $sql = "update user set username='{$new_name}',password='{$new_pass}' where username='{$user}'";
  29. $resp = mysqli_query($conn,$sql);
  30. if ($resp){
  31. echo "用户名、密码更改成功";
  32. }else{
  33. echo "用户名、密码更改失败";
  34. }
  35. }else{
  36. echo "旧密码不一致";
  37. }
  38. }else{
  39. echo "新用户名、密码不能为空";
  40. }
  41. }else{
  42. echo "未找到该用户";
  43. }
  44. ?>
  45. </body>
  46. </html>
  1. <?php
  2. include "./inc/conn.php";
  3. $id = $_GET['id'];
  4. $sql = "delete from user where id={$id}";
  5. $result = mysqli_query($conn,$sql);
  6. if ($reuslt == NULL){
  7. header("location:index.php");
  8. }else{
  9. echo "删除失败";
  10. }
  11. ?>

创建用户页面: insert.php

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1">
  6. <title>创建用户</title>
  7. </head>
  8. <body>
  9. <form action="insert.php" method="POST">
  10. 用户名:<input type="text" name="username"><br>
  11. 密码:<input type="password" name="password_new"><br>
  12. 确认密码:<input type="password" name="password_again"><br>
  13. <input type="submit" name="submit" value="创建用户">
  14. </form>
  15. <?php
  16. include "./inc/conn.php";
  17. if (!empty($_POST['submit'])){
  18. # 获取输入的用户名和密码
  19. $user = $_POST['username'];
  20. $pass = $_POST['password_new'];
  21. # 判断两次输入的密码是否一次
  22. if (empty($pass)){
  23. echo "密码不能为空";
  24. }elseif($pass === $_POST['password_again']){
  25. # 查询是否存在创建的用户
  26. $select = mysqli_query($conn,"select * from user where username='{$user}'");
  27. @$select_row = mysqli_num_rows($select);
  28. # 判断是否已经创建
  29. if ($select_row){
  30. echo "{$user}已存在";
  31. }else{
  32. # 获取当前的一共有几个用户
  33. $result = mysqli_query($conn,'select * from user');
  34. $row = mysqli_num_rows($result);
  35. # 进行用户创建
  36. $sql = "insert into user values ({$row},'{$user}','{$pass}')";
  37. $resp = mysqli_query($conn,$sql);
  38. # 如果SQL语句执行成功,用户创建成功
  39. if ($resp){
  40. echo "用户创建成功";
  41. }else{
  42. echo "用户创建失败";
  43. }
  44. }
  45. }else{
  46. echo "两次输入的密码不一致";
  47. }
  48. }else{
  49. echo "请输入需要创建的用户和密码";
  50. }
  51. ?>
  52. </body>
  53. </html>

这里是有SQL注入的,以后可以用来SQL注入的防护,和HTML加CSS的美化的练习,主要的功能都实现了。

版权声明:本文为Junglezt的博客原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/Junglezt/p/16379438.html