zoukankan      html  css  js  c++  java
  • 数据库: PHP使用PDO连接数据库实现增 删 改 查 操作

    准备好测试的数据库

      IP: 47.92.31.46

      用户名: yang

      密码:    11223344.

      数据库名字 :  databasetest

      表格:  userinfo

      

      这是我云端电脑安装的数据库,大家都可以连接测试

      我设置了权限,只可以增删改查数据

    配置PHP增加数据库插件

      PHP属于网页/网站的范畴,用PHP可以实现http通信

      现在大部分网页的登录注册都是用PHP来实现的

      PHP接收到用户的http数据信息,插入数据库

      PHP添加数据库插件

      https://www.cnblogs.com/yangfengwu/p/11815410.html

    API使用

      https://dev.mysql.com/doc/apis-php/en/apis-php-mysqlinfo.html

    说明

      咱用浏览器访问PHP文件实现对数据库的操作

      1.浏览器访问的是我网站根目录的这个文件

      

      

    <?php
    
    //http://47.92.31.46/PHPPDOtest.php?username=yang&password=11223344
    
    $servername = "47.92.31.46";
    $username = "yang";
    $password = "11223344.";//根据自己的修改
    $dbname = "databasetest";//链接的数据库名字
    $TableName = "userinfo";//链接的表格的名字
    try 
    {
        $Loginusername = $_GET["username"];//用户提交的用户名
        $Loginpassword  = $_GET["password"];//用户提交的密码
        
        try {
            $conn = new PDO("mysql:host=$servername;port=3306;dbname=$dbname", $username, $password);//链接数据库
            //echo "PDO的API连接成功"; 
            $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // 设置 PDO 错误模式为异常 
    
            //编写操作数据库的程序
    
            $conn=null;//关闭
        }
        catch(PDOException $e){
            //echo $e->getMessage();
            echo "errorCode:DataBase";//返回
        }
    }
    catch(PDOException $e)
    {
        //echo $e->getMessage();
        echo "errorCode:ReadData";//返回
    }
    http://47.92.31.46/PHPPDOtest.php?username=yang&password=11223344

    这是浏览器输入的后面是用户名和密码

        $Loginusername = $_GET["username"];//用户提交的用户名
        $Loginpassword  = $_GET["password"];//用户提交的密码

    这个用来获取http过来的数据

    插入数据(第一种)

      一,插入数据,id是1,用户名是yang 密码是11223344

      浏览器输入 http://47.92.31.46/PHPPDOtest.php?username=yang&password=11223344

     

      $sql = "insert into userinfo "." values(1,"."'".$Loginusername."'".","."'".$Loginpassword."'".")";

      insert into userinfo : 插入数据到 userinfo 表格 

      1 :id的值,自动递增

      yang : 用户名

      11223344 :密码

      注:一般插入字符串型数据需要在数据两边加   '    '

      也就是  '数据'

      

    <?php
    
    //http://47.92.31.46/PHPPDOtest.php?username=yang&password=11223344
    
    $servername = "47.92.31.46";
    $username = "yang";
    $password = "11223344.";//根据自己的修改
    $dbname = "databasetest";//链接的数据库名字
    $TableName = "userinfo";//链接的表格的名字
    try 
    {
        $Loginusername = $_GET["username"];//用户提交的用户名
        $Loginpassword  = $_GET["password"];//用户提交的密码
        
        try {
            $conn = new PDO("mysql:host=$servername;port=3306;dbname=$dbname", $username, $password);//链接数据库
            //echo "PDO的API连接成功"; 
            $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // 设置 PDO 错误模式为异常 
    
            //
            $sql = "insert into userinfo "." values(1,"."'".$Loginusername."'".","."'".$Loginpassword."'".")";
            $count  =  $conn->exec($sql); //返回受影响的行数
            if ($count !=0){//插入数据成功
                echo "OK";
            }else{
                echo "errorCode:DataBase";
            }
            $conn=null;//关闭
        }
        catch(PDOException $e){
            //echo $e->getMessage();
            echo "errorCode:DataBase";//返回
        }
    }
    catch(PDOException $e)
    {
        //echo $e->getMessage();
        echo "errorCode:ReadData";//返回
    }

    运行测试

      http://47.92.31.46/PHPPDOtest.php?username=yang&password=11223344

      

      

    插入数据(第二种)

      

    $sql = "insert into userinfo "." values(NULL,"."'".$Loginusername."'".","."'".$Loginpassword."'".")";

     和上面相比 value(NULL.....)

    设置第一个字段是空,意思是不填写第一个字段(默认就会自动递增)

     

    运行测试

      http://47.92.31.46/PHPPDOtest.php?username=yangyang&password=00000000

      

      

    总结上两种插入数据方式

      values里面的值依次填到表格中,如果数据不够,后面的就不插入数据

      

    插入数据(第三种)

      

    $sql = "insert into userinfo(username,password)"." values("."'".$Loginusername."'".","."'".$Loginpassword."'".")";
    (username,password) 后面的values里面的数据对应插到哪个字段里面
    
    
    
    
    
    

     

    运行测试

      http://47.92.31.46/PHPPDOtest.php?username=yangyang&password=11111111

    
    
    

      

    删除数据

    $sql = "delete from userinfo "." where "."username = "."'".$Loginusername ."'";

    如果浏览器输入: http://47.92.31.46/PHPPDOtest.php?username=yang&password=11111111

    删除 userinfo表格中 username字段中是 yang的数据

    意思就是删除,下面这条数据

     

    运行测试

    http://47.92.31.46/PHPPDOtest.php?username=yang&password=11111111

      

    $sql = "delete from userinfo "." where "."username = "."'".$Loginusername ."'"." and "."password ="."'".$Loginpassword."'";

    如果浏览器输入: http://47.92.31.46/PHPPDOtest.php?username=yangyang&password=00000000

    删除 userinfo表格中 username字段中是 yangyang,同时password字段中是 00000000 的数据

    其实就是删除这个

      

    运行测试

      http://47.92.31.46/PHPPDOtest.php?username=yangyang&password=00000000

      

    修改数据

      

    $sql = "update userinfo set password="."'".$Loginpassword."'" ."where username="."'".$Loginusername."'";

     如果浏览器输入: http://47.92.31.46/PHPPDOtest.php?username=yangyang&password=888888

     找到userinfo表格中username字段值是yangyang的

    然后把 password字段的值修改为 888888

    其实就是把11111111修改为888888

    运行测试

     http://47.92.31.46/PHPPDOtest.php?username=yangyang&password=888888

      

    当然也可以直接设置

    $sql = "update userinfo set password="."'".$Loginpassword."'";

    查询数据

            $sql = "select *from userinfo";//查询表格中的所有数据
            $result = $conn->query($sql);//发送SQL语句并接收数据库返回
    
            if ($result && $result->rowCount()) {//查询到数据
                while($row = $result->fetch()) {//循环读出数据
                    echo $row['username'].$row['password'];//打印数据
                }
            }

    http://47.92.31.46/PHPPDOtest.php?username=yangyang&password=888888

    注意:和输入的没有关系,咱浏览器输入只是让PHPPDOtest.php 运行一下

     

     为直观看到下面的测试增加一个用户名和密码

    查询表格中的所有username字段的值
            $sql = "select username from userinfo";//查询表格中的所有username字段的值
    
            $result = $conn->query($sql);//发送SQL语句并接收数据库返回
    
            if ($result && $result->rowCount()) {//查询到数据
                while($row = $result->fetch()) {//循环读出数据
                    echo $row['username'];//打印数据
                }
            }
    
    
    

     运行测试

    http://47.92.31.46/PHPPDOtest.php?username=yangyang&password=888888

    注意:和输入的没有关系,咱浏览器输入只是让PHPPDOtest.php 运行一下

     

    查询表格中的密码是666666的用户名
            $sql = "select username from userinfo where password = 666666";//查询表格中的密码是666666的用户名
    
            $result = $conn->query($sql);//发送SQL语句并接收数据库返回
    
            if ($result && $result->rowCount()) {//查询到数据
                while($row = $result->fetch()) {//循环读出数据
                    echo $row['username'];//打印数据
                }
            }

    运行测试

    http://47.92.31.46/PHPPDOtest.php?username=yangyang&password=888888

    注意:和输入的没有关系,咱浏览器输入只是让PHPPDOtest.php 运行一下

      

     

    //查询表格中password是666666的所有数据
            $sql = "select *from userinfo where password = 666666";//查询表格中password是666666的所有用户信息
    
            $result = $conn->query($sql);//发送SQL语句并接收数据库返回
    
            if ($result && $result->rowCount()) {//查询到数据
                while($row = $result->fetch()) {//循环读出数据
                    echo $row['id'].$row['username'];//打印数据
                }
            }

     

    运行测试

      

    http://47.92.31.46/PHPPDOtest.php?username=yangyang&password=888888

    注意:和输入的没有关系,咱浏览器输入只是让PHPPDOtest.php 运行一下

      

  • 相关阅读:
    java 多线程 Future callable
    nginx Access-Control-Allow-Origin css跨域
    maven 项目调试本地代码
    tomcat -ROOT 与webapps 的关系,关于部署的一些问题
    需求分析,挖掘背后的原因
    js 短信验证码 计时器
    总结一些小问题
    基于synchronized 或 ReadWriteLock实现 简单缓存机制
    java cookie 工具类
    309. 最佳买卖股票时机含冷冻期
  • 原文地址:https://www.cnblogs.com/yangfengwu/p/12190163.html
Copyright © 2011-2022 走看看