PHP MySQL, как установить имена столбцов / полей в переменные после fetch_assoc - PullRequest
0 голосов
/ 19 октября 2018

Я пытаюсь получить имена столбцов и их значения, а затем установить имена столбцов в переменные ... Имеет ли это смысл?

$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);

Может кто-нибудь подсказать мне, как это сделать?Спасибо.

1 Ответ

0 голосов
/ 19 октября 2018

Вы можете использовать строку для объявления переменной, которая называется переменные переменной

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
}

Используя extract, вы можете добавить дополнительные параметры (описано в документации, связанной выше)

while($row = $res->fetch_assoc()) {
    extract($row, EXTR_PREFIX_ALL, "someNicePrefix");
}

Оба метода будут иметь одинаковый эффект.Обратите внимание, что для извлечения между префиксом и именем переменной

будет вставлен символ _.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...