数组的输出值(php,mysql)

时间:2013-08-05 07:30:38

标签: php mysql mysqli

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']无效。

2 个答案:

答案 0 :(得分:4)

您的函数返回一个数组数组,因此要获取第一个ID:

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

附注:

  • 全球不受欢迎。请考虑将数据库连接对象作为参数传递给函数。
  • 像这样逃避是一种防止SQL注入的原始方法。使用Prepared Statement会更安全,更容易。
  • or die(....)是不好的做法,因为它向用户公开了详细的MySQL错误,如果你写了数百次,很难删除。另一种选择是trigger_error(),它会静默写入您的错误日志。

答案 1 :(得分:2)

您无需使用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'];