PDO准备语句功能

 晋coder 发布于 2023-01-12 14:12

我正在使用PDO预处理语句,在处理我当前的项目时,我决定为我需要的每个动作创建几个函数.下面是fetch的示例

function db_fetchAll($sql, $param) {
    global $db;

    $stmt = $db->prepare($sql);

    if (empty($param)) {
        $stmt->execute();
    } else {
        $stmt->execute($param);
    }

    $count = $stmt->rowCount();

    if ($count == 0) {
        $result = "";
    } elseif ($count == 1) {
        $result[] = $stmt->fetch();
    } elseif ($count > 1) {
        $result = $stmt->fetchAll();
    }

    return $result;
}

$database = db_fetchAll("SELECT * FROM database_table WHERE id=:id", array(':id' => $id));

它只会将查询的行从3行压缩为1,但是每个页面所需的信息量值得缩小.

我将通过该项目返回最后一次通过,我只想对此安全性发表第二意见.如果有任何我应该添加的内容,等等.所有user_input都通过此函数传递

function user_input($input) {
    $input = trim($input);  
    $output = strip_tags($input);

    return $output;
}

并且所有输出都使用htmlspecialchars.

简而言之,问题是:这样安全吗?还有什么我可以做的,以防止任何其他形式的注射等?

我完全理解准备好的陈述如何运作,我只是彻底,这个网站的第1版是一场噩梦,大量的注射,获得管理员帐户的访问权限等.

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有