PostgreSQL गिने प्लेसहोल्डर्स के साथ काम करता है ($1
, $2
, ...) सामान्य स्थितिगत प्रश्न चिह्नों के बजाय मूल रूप से। गो इंटरफ़ेस के लिए प्रलेखन इसके उदाहरणों में क्रमांकित प्लेसहोल्डर का भी उपयोग करता है:
rows, err := db.Query("SELECT name FROM users WHERE age = $1", age)
ऐसा लगता है कि गो इंटरफ़ेस प्रश्नवाचक चिह्नों को क्रमांकित प्लेसहोल्डर्स में अनुवाद नहीं कर रहा है जिस तरह से कई इंटरफेस करते हैं, इसलिए प्रश्न चिह्न डेटाबेस तक पहुंच रहा है और सब कुछ भ्रमित कर रहा है।
आपको प्रश्नवाचक चिह्न के बजाय क्रमांकित प्लेसहोल्डर पर स्विच करने में सक्षम होना चाहिए:
row := db.QueryRow(
"SELECT name FROM users WHERE id = $1", id)