zoukankan      html  css  js  c++  java
  • 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方法:分两次发送
  • 相关阅读:
    [UML]UML系列——活动图activity diagram
    [UML]UML系列——包图Package
    UNIDAC不能识别CLIENTDATASET的TSINGLEFIELD
    UNIDAC如何驱动MSSQL2000
    delphi各个版本编译开关值
    优秀的数据序列和还原类----TSimpleMsgPack
    DELPHI方法注释的标准写法
    客户端如何通过咏南中间件调用存储过程和数据分页查询和文件传输的演示
    delphi 安卓程序如何读取外部配置文件
    调用DATASNAP+FIREDAC的远程方法有时会执行二次SQL或存储过程的BUG
  • 原文地址:https://www.cnblogs.com/u1020641/p/6012439.html
Copyright © 2011-2022 走看看