zoukankan      html  css  js  c++  java
  • PHP mysqli学习(五)预处理

    预处理可以处理不同参数的同一条SQL,并且有效地防止SQL注入问题。

    核心方法

    $mysqli_stmt = mysqli->prepare($sql); // 预处理,返回statement对象

    $mysqli_stmt->bind_param(); // 绑定参数, 类型对应关系如下:

      i : Integer

        s : String

      d : double

      b : blob

    $mysqli_stmt->excute(); // 执行sql

    <?php
    $mysqli = @new mysqli("localhost:3306", "root", "root", "zhy");
    if ($mysqli->connect_errno) {
        die("MYSQL CONNECT ERROR:" . $mysqli->connect_error);
    }
    $mysqli->set_charset('utf8');
    
    $sql = 'INSERT INTO user (name, age, description) VALUES (?,?,?)';
    
    $mysqli_stmt = $mysqli->prepare($sql);
    //print_r($mysqli_stmt);
    
    for ($i = 0; $i < 5; $i++) {
        $name = 'prepare' . $i;
        $age = 25 + $i;
        $description = 'description' . $i;
        $mysqli_stmt->bind_param('sis', $name, $age, $description);
        if ($mysqli_stmt->execute()) {
            echo $mysqli_stmt->insert_id;
            echo '<br/>';
        } else {
            echo $mysqli_stmt->error;
        }
    }

    $mysqli_stmt->close();

    $mysqli->close();
     
  • 相关阅读:
    麦肯锡矩阵导航图
    以业务为核心的云原生体系建设
    万字长文拿下HTTP
    人人都该懂的埋点知识
    淘宝的技术架构
    五步,快速理解一个行业
    一文读懂用户分层
    python13day
    python12day
    python11day
  • 原文地址:https://www.cnblogs.com/zhyzyn1314/p/5468530.html
Copyright © 2011-2022 走看看