• mysqli扩展库的 预处理技术 mysqli stmt


    问题的提出?

    现在需要向mysql数据库添加100个用户,请问如何实现?

    思路:

    1. 使用for循环100次,向数据库中添加100个用户.
    2. 使用批量添加

        $sql1=”insert xxx”;

        $ssql.=”insert xxx ”;

        。。。

    使用$msyqli->mutil_query($sql1);

      3.方案使用预编译技术,该方案还可以防止sql注入攻击.

    <?php
    
        //预编译演示
        //需求: 请使用预处理的方式,向数据库添加三个用户 
        //1.创建mysqli对象
        $mysqli=new MySQLi("localhost","root","hsp123","test");
    
        //2.创建预编译对象
        $sql="insert into user1 (name,password,email,age) values(?,?,?,?)";
        $mysqli_stmt=$mysqli->prepare($sql) or die($mysqli->error);//prepare($sql)预处理函数
        //绑定参数
        $name="小倩";
        $password="xiaoqian";
        $email="aa@sohu.com";
        $age="200";
        //参数绑定->给?赋值,这里类型和顺序都要对应.
        //
        $mysqli_stmt->bind_param("sssi",$name,$password,$email,$age);
        //执行
        $b=$mysqli_stmt->execute();
        
        //继续添加
        $name="老妖";
        $password="laoyao";
        $email="laoyao@sohu.com";
        $age="210";
    
        $mysqli_stmt->bind_param("sssi",$name,$password,$email,$age);
    
        //执行
        $b=$mysqli_stmt->execute() ;
        
        //继续添加
        $name="菜层";
        $password="aaa";
        $email="aa@sohu.com";
        $age="30";
        $mysqli_stmt->bind_param("sssi",$name,$password,$email,$age);
    
        //执行
        $b=$mysqli_stmt->execute();
    
        if(!$b){
            die("操作失败".$mysqli_stmt->error);
        }else{
            echo "操作ok";
        }
        //释放
        $mysqli->close();
    
    ?>
        

     现在我们看看mysqli的一些其他常用函数

    案例编写一函数,接收一个表名,然后把表头和表数据,显示页面

    <?php
    function showTable($table_name){
            $mysqli=new MySQLi("localhost","root","hsp123","test");
            if(mysqli_connect_error()){
                die(mysqli_connect_error());
            }
            //$sql="select * from $table_name";
            $sql="desc user1";
            $res=$mysqli->query($sql);
            //如何获取返回总行数和列数
            echo "共有 行".$res->num_rows." -列=".$res->field_count;
            echo "<table border='1'><tr>";
            //如何取出表头,从$res取出
            while($field=$res->fetch_field()){
                echo "<th>{$field->name}</th>";
            }
            echo "</tr>";
            //循环取出数据
            while($row=$res->fetch_row()){
                echo "<tr>";
                foreach($row as $val){
                    echo "<td>$val</td>";
                }
                echo "</tr>";
            }
            echo "</table>";
            //关闭资源
            $res->free();
            $mysqli->close();
        }
    
        showTable("user1");
    ?>
  • 相关阅读:
    采用重写tostring方法使ComboBox显示对象属性
    JavaScript中正则表达式test()、exec()、match() 方法
    高级软件工程实践总结作业
    用户使用调查报告
    Beta阶段置顶集合
    Beta冲刺阶段总结随笔
    Beta冲刺Day7
    Beta冲刺Day6
    Beta冲刺Day5
    Beta冲刺Day4
  • 原文地址:https://www.cnblogs.com/xs-yqz/p/5137811.html
Copyright © 2020-2023  润新知