数组的输出值(php,mysql)


Output value from array (php, mysql)

function getById($id) {
    global $mysqli;
    $result = $mysqli->query("SELECT * FROM `ids` WHERE `id` = '".$mysqli->real_escape_string($id)."'") or die($mysqli->error);
    $rows = array();
    while($row = $result->fetch_array(MYSQLI_ASSOC)) {
        $rows[] = $row;
    }
    return $rows;
}

如何获取 id 字段的值?

$data = getById(1);

echo $data[0]echo $data['id']不起作用。

你的函数返回一个数组数组,所以要获取第一个 ID:

$data = getById(1);
echo $data[0]['id'];

旁注:

  • 全局变量是不可取的。请考虑改为将数据库连接对象作为参数传递给函数。
  • 像这样转义是防止SQL注入的原始方法。使用预处理的声明会更安全、更容易。
  • or die(....)是一种不好的做法,因为它会向用户公开详细的MySQL错误,如果您已经编写了数百次,则很难删除。另一种方法是以静默方式写入错误日志的trigger_error()

你不需要使用 while 和数组。获取单行,您可以在不使用数组的情况下获取:

function getById($id) {
    global $mysqli;
    $result = $mysqli->query("SELECT * FROM `ids` WHERE `id` = '".$mysqli->real_escape_string($id)."'") or die($mysqli->error);
    return $result->fetch_array(MYSQLI_ASSOC);
}
$data = getById(1);
echo $data['id'];