PHP MySQL 如何在 fetch_assoc 之后将 column/field 名称设置为变量
PHP MySQL how to set column/field names into variables after fetch_assoc
我正在尝试获取列名和值,然后将列名设置为变量...这有意义吗?
$con = mysqli_connect('localhost', 'mysql_user', 'mysql_password', 'db_name');
$sql = "SELECT * FROM `table`";
$res = mysqli_query($con,$sql);
while($row = $res->fetch_assoc()) {
$column1 = $row['column1']; // <- can these be
$column2 = $row['column2']; // as simple as one
...
$column100 = $row['column100']; // line or two?
}
mysqli_close($con);
谁能指导我怎么做?谢谢。
可以用字符串声明一个变量,叫做variable variables
while($row = $res->fetch_assoc()) {
foreach ($row as $key => $value)
$$key = $value;
// ^----------------------notice the double dollar
}
或者,您可以使用 extract
while($row = $res->fetch_assoc()) {
extract($row);
}
为确保您不想覆盖一些已经存在的变量,您可以为它们添加前缀。
while($row = $res->fetch_assoc()) {
foreach ($row as $key => $value)
$someNicePrefix_{$key} = $value;
// ^----^-------------notice the curly brackets
}
使用提取,您可以添加更多参数(在上面链接的文档中有描述)
while($row = $res->fetch_assoc()) {
extract($row, EXTR_PREFIX_ALL, "someNicePrefix");
}
两种方法的效果是一样的。请注意,对于提取,将在前缀和变量名称
之间插入一个字符_
我正在尝试获取列名和值,然后将列名设置为变量...这有意义吗?
$con = mysqli_connect('localhost', 'mysql_user', 'mysql_password', 'db_name');
$sql = "SELECT * FROM `table`";
$res = mysqli_query($con,$sql);
while($row = $res->fetch_assoc()) {
$column1 = $row['column1']; // <- can these be
$column2 = $row['column2']; // as simple as one
...
$column100 = $row['column100']; // line or two?
}
mysqli_close($con);
谁能指导我怎么做?谢谢。
可以用字符串声明一个变量,叫做variable variables
while($row = $res->fetch_assoc()) {
foreach ($row as $key => $value)
$$key = $value;
// ^----------------------notice the double dollar
}
或者,您可以使用 extract
while($row = $res->fetch_assoc()) {
extract($row);
}
为确保您不想覆盖一些已经存在的变量,您可以为它们添加前缀。
while($row = $res->fetch_assoc()) {
foreach ($row as $key => $value)
$someNicePrefix_{$key} = $value;
// ^----^-------------notice the curly brackets
}
使用提取,您可以添加更多参数(在上面链接的文档中有描述)
while($row = $res->fetch_assoc()) {
extract($row, EXTR_PREFIX_ALL, "someNicePrefix");
}
两种方法的效果是一样的。请注意,对于提取,将在前缀和变量名称
之间插入一个字符_