#php #sql
#php #sql
Вопрос:
Не уверен, что заголовок — это именно то, что я хочу сделать. Ниже приведен мой рабочий код.
mysql_select_db($_POST[database]);
$table_list = mysql_query('SHOW TABLES');
$tables_in_db = "Tables_in_" . $_POST[database];
while ($row = mysql_fetch_object($table_list)) {
echo "<tr>
<td class='pageBody'>" . $row->$tables_in_db . "</td>
</tr>";
}
Возможно ли каким-либо образом удалить строку 4 и получить доступ к атрибуту объекта с помощью $row->Tables_in_{$_POST[database]}? Я пробовал несколько разных способов, включая различное размещение кавычек и фигурных скобок, мне пришлось прибегнуть к присвоению всего атрибута переменной $tables_in_db, а затем использовать эту переменную для доступа к атрибуту.
Комментарии:
1. mysql_select_db($_POST[‘database’]); просто напрашивается на использование
Ответ №1:
У вас правильная идея, просто неправильный синтаксис. Свойства переменной могут принимать форму одной переменной ( $a->$b
) или какого-либо другого выражения, которое возвращает строку, содержащую имя свойства ( $a->{'b'}
).
$row->{'Tables_in_' . $_POST['database']}
Кроме того: при использовании одной из других mysql_fetch_*
функций знание имени столбца станет неактуальным. Например, mysql_fetch_array()
или mysql_fetch_row()
и доступ к $row[0]
элементу.