Не уверен, что название именно то, что я хочу сделать. Ниже мой рабочий код.
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, а затем использовать эту переменную для доступа к атрибуту.
У вас есть правильная идея, просто не правильный синтаксис. Свойства переменной могут принимать форму одной переменной ( $a->$b
) или другого выражения, которое возвращает строку, содержащую имя свойства ( $a->{'b'}
).
$row->{'Tables_in_' . $_POST['database']}
Кроме того, используя одну из других функций mysql_fetch_*
, зная, что имя столбца станет неактуальным. Например, mysql_fetch_array()
или mysql_fetch_row()
и доступ к элементу $row[0]
.