MySQL预准备

<?php 
//预准备prepare********************
//连接的信息
$dsn = 'mysql:host=127.0.0.1;dbname=stu';
$username = 'root';
$password = '';
try {
    //连接数据库
    //如果连接出错那么会抛出异常,然后就会被catch接到
    $pdo = new PDO($dsn,$username,$password);
    //设置下面的语句都为异常错误,这样才能被try catch接收
    $pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
    //发送字符集
    $pdo->query("SET NAMES UTF8");
    
    //实现预准备
    //功能1->防SQL注入:SQL和用户输入的信息如果一起解析有可能会出现安全问题,那么解决的方案:就是先解析sql,然后再绑定参数,这样就可以分离了
    //功能2->执行速度更快:如果执行100万条数据变的只有id,那么之前的方式会解析100万次sql,如果采用预准备,那么只需要解析一次,所以预准备更快
    $st = $pdo->prepare('SELECT * FROM stu WHERE id=? AND sex=?');
    //用户的参数
    $id = 0;
    $sex = 0;
    //绑定参数
    $st->bindParam(1,$id,PDO::PARAM_INT);
    $st->bindParam(2,$sex,PDO::PARAM_INT);
    //执行
    $st->execute();
    //获得结果
    $data = $st->fetchAll(PDO::FETCH_ASSOC);
    echo "<pre>";
    print_r($data);
    echo "</pre>";
    
} catch (PDOException $e) {
    //catch里面捕获PDO的异常错误
    echo '<span style="color:red">' . $e->getMessage() . '</span>';
    exit;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容