# #sql #database #sqlite #go
Вопрос:
Я пытаюсь выполнить запросы здесь, но, похоже, не всегда работает с sql: ожидается 1 аргумент, получено 2 ошибки
return func(c echo.Context) error {
rows, err := db.Query("SELECT * FROM posts ORDER BY id DESC")
if err != nil {
panic(err)
}
defer rows.Close()
result := PostCollection{}
for rows.Next() {
post := Post{}
err2 := rows.Scan(amp;post.ID, amp;post.Fullname, amp;post.Content)
if err2 != nil {
panic(err2)
}
result.Posts = append(result.Posts, post)
}
return c.JSON(http.StatusOK, result)
}
}
Комментарии:
1. Какова схема базы данных таблицы
posts
? Имеет ли он только 3 столбца amp; в порядке:ID, Fullname, Content
?2. @badman ошибка исходит не из кода, который вы показали, она исходит из какого-то другого кода бд. Вам нужно показать код, который на самом деле вызывает ошибку, иначе будет трудно дать определенный ответ.
3. @badman ошибка относится к несоответствующему количеству заполнителей параметров в строке запроса sql и количеству фактических параметров, переданных функции, выполняющей запрос. Например, вы можете получить эту ошибку , если у вас есть что-то вроде:
db.Query("SELECT * FROM posts WHERE id=?", 123, 456)
, вы можете видеть, что есть только один?
заполнитель, но два аргумента123
и456
. Такой код приведет к появлению указанного вами сообщения об ошибке.
Ответ №1:
если вам просто нужен идентификатор запроса, полное имя, облако содержимого, попробуйте это
db.Query("SELECT ID, FullName, Content FROM posts ORDER BY id DESC")