Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/249.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
数组的输出值(php、mysql)_Php_Mysql_Mysqli - Fatal编程技术网

数组的输出值(php、mysql)

数组的输出值(php、mysql),php,mysql,mysqli,Php,Mysql,Mysqli,如何获取id字段的值 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_ar

如何获取id字段的值

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;
}

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

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

$data = getById(1);
旁注:

  • 全局性是不可取的。考虑将数据库连接对象作为函数传递给函数,
  • 这样的转义是防止SQL注入的一种基本方法。使用a将更安全、更容易
  • 或die(…)
    是一种不好的做法,因为它向用户暴露了详细的MySQL错误,如果您已经写了数百次,那么很难删除它。另一种方法是
    trigger\u error()
    ,它以静默方式写入错误日志

    • 您无需使用while和array。获取单行,无需使用数组即可获取:

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

      尝试在函数中打印$行,您将了解它返回值的内容/方式尝试执行
      var\u dump($data)
      以查看函数返回的内容。
      echo 1getById(1)
      'id'
      的值应该是
      1
      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'];