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