• php数据访问增删查


    1、先做一个登陆界面

    <form action="chuli.php" method="post">
        <div>用户名:<input type="text" name="uid" /></div>
        <div>密码:<input type="text" name="pwd" /></div>
        <div><input type="submit" name="" value="确定" /></div>
    </form>

    2、访问数据库进行账号密码验证(拿用户名查密码,再进行验证)

    $uid = $_POST["uid"];
    $pwd = $_POST["pwd"];
    
    
    $db = new MySQLi("localhost","root","159357","shuiguo");
    
    $sql = "select password from login where username='{$uid}'";  //当用此方法时会出现不输入数据就能直接登录,所以要加if判断密码不等于空
    
    $reslut = $db->query($sql);
    
    $n = $reslut->fetch_row();
    
    if($uid !="" && $pwd != "")          //判断用户名跟密码不等于空
    {
        if($n[0]==$pwd)                    //当用此方法时会出现不输入数据就能直接登录,所以要加if判断密码不等于空
        {
            header("location:main.php");
        }
        else
        {
            echo "用户名或密码错误!";
        }
    }
    else
    {
        echo "用户名密码不能为空";
    }

    3、登录后跳转到主页:通过查数据库里面的内容,返回一张表、增加操作列(删除)

    <table width="100%" border="1" cellpadding="0" cellspacing="0">
        <tr>
            <td>代号</td>
            <td>姓名</td>
            <td>性别</td>
            <td>民族</td>
            <td>生日</td>
            <td>操作</td>
        </tr>
    
    <?php
    $db = new MySQLi("localhost","root","159357","renyuanxinxi");
    
    $sql = "select * from info";
    
    $result = $db->query($sql);
    
    $attr = $result->fetch_all();
    
    foreach($attr as $v)
    {
        $sex = $v[2]?"男":"女";                //三元运算符
        
        $name = NationName($v[3]);
        /*$sname = "select name from nation where code='{$v[3]}'";        //根据民族代号查询民族名称
        
        $rname = $db->query($sname);        //执行返回rname结果集
        
        $aname = $rname->fetch_row();*/        //返回数组aname 里面存民族名称  查到了一个
        
        echo "<tr>";
        echo "<td>{$v[0]}</td>
              <td>{$v[1]}</td>
              <td>{$sex}</td>
              <td>{$name}</td>
              <td>{$v[4]}</td>
              <td><a href='shanchu.php?c={$v[0]}' onclick="return confirm('主人真的不要我了吗?')">删除</a></td>";        
    //传主键值c,根据主键值删除数据
     //confirm 带确定的对话框(如果用户点确定就返回true 点取消就返回false) // 反斜杠 转义字符 //第一种方法:直接写<td>
    /*foreach($v as $v1) //第二种方法:用循环代替<td> { echo "<td>{$v1}</td>"; } echo "</tr>";*/ } function NationName($code) //如果觉得上面写的比较乱,可以用封装 //给一个民族代号返回民族名称 { $db = new MySQLi("localhost","root","159357","renyuanxinxi"); $sql = "select name from nation where code='{$code}'"; $result = $db->query($sql); $attr = $result->fetch_row(); return $attr[0]; } ?> </table> <a href="add.php"><input type="button" value="点我添加" /></a>

    4、删除操作(根据主键值来进行单条删除)

    <?php
    
    $code = $_GET["c"];
    
    $db = new MySQLi("localhost","root","159357","renyuanxinxi");
    
    $sql = "delete from info where code='{$code}'";
    
    $r = $db->query($sql);
    
    if($r)
    {
        header("location:main.php");
    }
    else
    {
        echo "删除失败!";
    }

    5、做一个添加页面(民族列访问数据库,创建下拉列表)

    <form action="addchuli.php" method="post">
        <div>代号:<input type="text" name="code" /></div>
        <div>姓名:<input type="text" name="name" /></div>
        <div>性别:
        <input type="radio" name="sex" value="1" checked="checked" />&nbsp;
        <input type="radio" name="sex" value="0" /></div>
        <div>民族:
        <select name="nation">
            <?php
            $db = new MySQLi("localhost","root","159357","renyuanxinxi");
            $sql = "select * from nation";                    //查找民族信息
            $result = $db->query($sql);
            $result = fetch_all();
            
            foreach($attr as $v)
            {
                echo "<option value='{$v[0]}'>{$v[1]}</option>";                //所有表单提交的是value值
            }
            ?>
        </select>
        </div>
        <div>生日:<input type="text" name="birthday" /></div>
        
        <div><input type="submit" value="添加"</div>
    </form>

    6、添加页面处理

    $code = $_POST["code"];
    $name = $_POST["name"];
    $sex = $_POST["sex"];
    $nation = $_POST["nation"];
    $birthday = $_POST["birthday"];
    
    $db = new MySQLi("localhost","root","159357","renyuanxinxi");
    
    $sql = "insert into info values('{$code}','{$name}',{$sex},'{$nation}','{$birthday}')";        //'{$name}'字符串往布尔型里面扔永远是true
    
    $db->query($sql);
    
    header("location:main.php");        //在添加性别与民族的时候要写 1或者0  民族代号

    小插曲(sql注入攻击)

    sql语句代码   
    
        $sql = "select count(*) from login where username='{$uid}' and password='{$pwd}'"
    
    用特定字符串登录   a' or '1'='1
    
    解决方法
    针对php来说:
    1、优化语句    
    2、处理用户输入内容,用函数判断有无特殊符号   
    3、PDO方法:分两次发送
  • 相关阅读:
    植物园偶遇一直喵
    植物园偶遇一直喵
    美食篇
    美食篇
    端午节路过南站
    端午节路过南站
    黄山云海
    黄山云海
    Android (1)
    树和树算法(1)
  • 原文地址:https://www.cnblogs.com/u1020641/p/6012439.html
Copyright © 2020-2023  润新知