Лучший способ - использовать виртуальную базу данных метаданных INFORMATION_SCHEMA . В частности, таблица INFORMATION_SCHEMA.COLUMNS ...
SELECT `COLUMN_NAME`
FROM `INFORMATION_SCHEMA`.`COLUMNS`
WHERE `TABLE_SCHEMA`='yourdatabasename'
AND `TABLE_NAME`='yourtablename';
Это ОЧЕНЬ мощный и может предоставить вам информацию о TONS без необходимости синтаксического анализа текста (например, тип столбца, столбец является нулевым, максимальный размер столбца, набор символов и т. д.) ...
О, и это стандартный SQL (в то время как SHOW ...
является специфическим для MySQL расширением) ...
Для получения дополнительной информации о различии между SHOW...
и использованием таблиц INFORMATION_SCHEMA
, проверьте документацию MySQL на INFORMATION_SCHEMA
вообще ...
Я думаю, что это синтаксис. Вам необходимо закрыть скобку в .then(response=>response.json()
componentDidMount() {
fetch("http://localhost:3001/login")
.then(response=>response.json()) // <-Insert a close bracket here
.then(data=> this.setState({profileinfo:data[0].firstname}, () => console.log(this.state.profileinfo)) // <- Call console in callback
) // <- Remove one here
console.log(this.state.profileinfo)
}
и вызвать консоль в функции обратного вызова, чтобы получить правильное значение. Потому что setState
является асинхронной функцией.
Вы пытались использовать функцию обратного вызова установленного состояния? возможно, что ваше состояние еще не было обновлено при ударе console.log.
может быть, попробовать
this.setState({profileinfo:data[0].firstname}, () => console.log(this.state.profileinfo))