@dimuska139
Backend developer

Как подружить go и Sphinx?

Пытаюсь подключиться к Sphinx в Go-шной программе через драйвер MySQL - и получаю ошибку commands out of sync. Did you run multiple statements at once? при любом запросе. Вот пример программы. В данном случае ошибку возвращает метод Ping(). Параметр ?multiStatements=true в DSN-строке пробовал (хотя он тут, думаю, не при чем) - не помогло. Что я делаю не так, и как решить проблему?
package main

import (
	"database/sql"
	"fmt"
	_ "github.com/go-sql-driver/mysql"
)


func main() {
	db, err := sql.Open("mysql", "tcp(127.0.0.1:9312)/")
	if err != nil {
		fmt.Println(err)
	}
	defer db.Close()
	fmt.Println(db.Ping())
}

P.s. со Sphinx точно все в порядке, php-шный проект с ним успешно взаимодействует.
  • Вопрос задан
  • 661 просмотр
Пригласить эксперта
Ответы на вопрос 3
@ghostiam
На Go писатель, серверов пинатель.
Уберите Ping, в Sphinx урезанный набор mysql команд.
Так же не используйте prepared statements, они им тоже не поддерживаются. Но не бойтесь, sql injection в Sphinx не грозит.
Ответ написан
@dimuska139 Автор вопроса
Backend developer
Может пригодится кому-то. Сейчас Sphinx юзать нет смысла, т.к. есть Manticore - они совместимы. И для работы с Manticore для Go есть официальный sdk-клиент.
Ответ написан
Комментировать
opium
@opium
Просто люблю качественно работать
А нахрена вы делаете припейр и какой то пинг? Вы почитайте что умеет сфинкскл
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы