• 数据访问与全局变量


    数据访问

    方式:函数方式(过时);面向对象方式(常用);PDO方式(数据访问抽象层)(常用)

    面向对象方式

    //创建连接对象
    变量 = new MySQLi("IP地址","数据库用户名","数据库密码","哪个数据库")
    $db = new MySQLi("localhost","root","123","mydb")
    //判断当前连接是否正确
    if(mysqli_connect_error()){      //没有错误为空或false
         echo "连接失败";
         exit;
    }
    //写一个sql语句
    $sql = "select * from info";
    //执行sql语句,如果成功返回一个结果集对象
    $result = $db->query($sql);       //失败是返回false,执行select,show,describe,explain查询会返回一个mysqli_result对象,其它查询返回true
    //读取查询结果
    if($result){    //判断结果是不是false
        //1.从结果集对象里面读取所有数据,返回二维数组
        $arr = $result->fetch_all();   //作为一个数组返回
        //2..从结果集对象里面读取数据,每次读一条,返回一维数组(索引关联都有)
        $arr = $result->fetch_array();
        //3.从结果集对象里面读取数据,每次读一条,返回一维数组(关联)
        $arr = $result->fetch_assoc();
        //4.从结果集对象里面读取数据,每次读一条,返回一个对象
        $arr = result->fetch_object();
        //5..从结果集对象里面读取数据,每次读一条,返回一维数组(索引)
        $arr = result->fetch_row()
        while($arr = result->fetch_row()){  //当作fetch_all使用
              var_dump($arr);
    }
    //需要哪一种就调用哪一个
    }

    示例

    //删除示例
    $db = new MySQLi("localhost","root","123","mydb");
    mysqli_connect_error()?die("连接失败!"):"";   //使用三目运算符
    $sql = "delete from nation where code='n006'";
    if($db->query($sql)){
        echo "删除成功!";
    }else{
        echo "删除失败!";
    }
    <table width="100%" border="1" cellpadding="0" cellspacing="0">
        <tr>
            <td>代号</td>
            <td>名称</td>
            <td>性别</td>
            <td>民族</td>
            <td>生日</td>
        </tr>
        
        <?php  
        $db = new MySQLi("localhost","root","123","mydb");
        $sql = "select * from info";
        $result = $db->query($sql);
        if($result){
            $arr = $result->fetch_all();
            foreach($arr as $v){    //foreach遍历显示
                echo "<tr>
            <td>{$v[0]}</td>
            <td>{$v[1]}</td>
            <td>{$v[2]}</td>
            <td>{$v[3]}</td>
            <td>{$v[4]}</td>
        </tr>";
            }
        }
        ?>
        
        
    </table>

    全局变量

    $name = "张三";
    function test (){
        $name = "李四";   //属于局部变量,作用域只在大括号里面,出了大括号就相当于访问不到
    }
    test();
    echo "姓名为{$name}";

    解决方案

    两种方法任意一种

    关键字global(把外层的一个变量当作全局变量拿到函数体中使用)

    $name = "张三";
    function test ($name){    //方法一可以把name传进去
        global $name;    //方法二把外层的name当作全局变量拿到函数里面来使用
        $name = "李四"; 
    }
    test();
    echo "{$name}";

  • 相关阅读:
    【c#.Net】类:面向对象
    【c#.Net】面试题库总结50题
    【c#.Net】C#面试题(.net开发人员必备)100题
    【C#.Net】方法和参数
    如何在Tomcat (6/7/8.0) 安装SSL证书
    ubuntu16.04安装jdk/mysql/tomcat (使用apt-get命令)
    java后台处理解析json字符串的两种方式
    web开发如何使用百度地图API(一)判断点是否在范围内
    ES6的let和var声明变量的区别
    web开发如何使用高德地图API(四)通过AMap.Marker自定义标点
  • 原文地址:https://www.cnblogs.com/Whitehat/p/8451849.html
Copyright © 2020-2023  润新知