2013-08-05 43 views
-1
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字段的值?array(php,mysql)的输出值

$data = getById(1); 

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

+0

尝试在功能打印$行,你会知道什么/它是如何返回值 –

+1

尝试执行'的var_dump($数据)'看该功能返回给你什么。 –

+0

'echo 1;'因为'getById(1)'''id''的值应该是'1'。 – deceze

回答

4

你的函数返回一个数组的数组,从而得到第一ID:

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

旁注:

  • 全局是不希望的。考虑将数据库连接对象作为参数传递给该函数。
  • 像这样转义是一种防止SQL注入的原始方法。使用Prepared Statement会更安全,更容易。
  • or die(....)是不好的做法,因为它会向用户公开详细的MySQL错误,并且如果您已经写了数百次,则很难将其删除。另一种方法是trigger_error(),它悄悄地写入错误日志。
+0

非常感谢。 – Snickerson

2

你不需要使用while和array。获取单列,你可以得到不使用数组:

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'];