Lors de l'interrogation d'une table MySQL pour les valeurs contenues dans une tranche, les utilisateurs peuvent rencontrer une erreur similaire à :
sql: converting Exec argument #0's type: unsupported type []int, a slice
Ce problème survient car SQLx ne prend pas automatiquement en charge les requêtes avec une tranche comme argument. Cependant, il apporte une solution grâce à sa fonction In().
Pour résoudre cette erreur, les étapes suivantes peuvent être suivies :
Préparez la requête en utilisant In() pour inclure la tranche comme argument :
query, args, err := sqlx.In("SELECT * FROM quote WHERE qid IN (?)", qids) if err != nil { log.Fatal(err) }
Relier la requête pour la rendre compatible avec le backend de la base de données :
query = database.SQL.Rebind(query)
Exécutez la requête en utilisant Select() :
err = database.SQL.Select(&quotes, query, args...)
L'ensemble du processus peut être simplifié en un seul line :
err = database.SQL.Select(&quotes, database.SQL.Rebind(query), args...)
Pour des exemples et de la documentation supplémentaires, veuillez vous référer au site Web officiel de SQLx : http://jmoiron.github.io/sqlx/
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!