2

私は mymysql パッケージを使用しており、SQL クエリといくつかのパラメーターを取得する関数を作成しようとしています (可変個引数の空のインターフェイスとして):

func FindByQuery(statement string, params ...interface{}) (diver *DiverT, err error) {
    values := make([]interface{}, len(params))
    for i := range params {
            values[i] = params[i]
    }

    // Both statements result in the same error...
    row, _, execError := Db.QueryFirst(statement,values...)

    row, _, execError := Db.QueryFirst(statement,params...)

    // Additional code...
}

ある種の SQL を使用してこのメ​​ソッドを呼び出すと、常に SQL エラーが発生します。私は次のようなことをします:

FindByQuery("SELECT * FROM Diver WHERE Name=?", "Markus")

次のエラーが発生します。

MySQL サーバーから #1064 エラーを受け取りました。

パラメータが文字列に正しく変換されるようにするにはどうすればよいですか (または、別のパラメータがある場合はそれが何であれ)。

4

1 に答える 1

0

printf 形式の構文を使用してみてください。

FindByQuery("SELECT * FROM Diver WHERE Name=%s", "Markus")
于 2014-03-25T13:03:56.977 に答える