0

我从其他人那里想出了这段代码,用于从数据库中收集数据并以最简单、最安全的方式显示它,而无需循环。但是它并没有真正起作用,我想知道为什么?所以我的主要问题是如何让它工作?以及 2:nth 如何使其尽可能安全?

显示数据的代码:

<?php echo $webdata['web_name']; ?>

init.php 中的代码:

$webdata = webdata('id', 'web_name');

功能代码:

function webdata($data) {
    $web_data = array();
    $func_num_args = func_num_args();
    $func_get_args = func_get_args();

    global $db_connect;
    if ($func_num_args > 1) {
        unset($func_get_args[0]);
        $fields = '`' . implode('`, `', $func_get_args) . '`';

        $query = "SELECT $fields FROM `settings` WHERE id = 1";
        $result = $db_connect->query($query);
        while ($web_data = $result->fetch_assoc()) {
            return ($web_data);
        }
    }
}
4

1 回答 1

0
  • 您没有data来自查询的变量。但是,您有一个webdata变量...

反而:

while ($webdata = $result->fetch_assoc()) { return ($data); }

利用:

while ($webdata = $result->fetch_assoc()) { return ($webdata); }
  • 你只返回第一行,这是你想要的吗?
  • 您不使用 $data 变量,它应该用于什么?

这是尽可能安全的:您没有任何方法可以在查询中注入一些东西......

于 2013-08-24T15:23:30.590 回答