|
|
@@ -99,6 +99,9 @@ func (mc *mysqlConn) handleParams() (err error) {
|
|
|
}
|
|
|
|
|
|
func (mc *mysqlConn) Begin() (driver.Tx, error) {
|
|
|
+ if mc.buf == nil {
|
|
|
+ return nil, errInvalidConn
|
|
|
+ }
|
|
|
err := mc.exec("START TRANSACTION")
|
|
|
if err == nil {
|
|
|
return &mysqlTx{mc}, err
|
|
|
@@ -108,6 +111,9 @@ func (mc *mysqlConn) Begin() (driver.Tx, error) {
|
|
|
}
|
|
|
|
|
|
func (mc *mysqlConn) Close() (err error) {
|
|
|
+ if mc.buf == nil {
|
|
|
+ return errInvalidConn
|
|
|
+ }
|
|
|
// Makes Close idempotent
|
|
|
if mc.netConn != nil {
|
|
|
mc.writeCommandPacket(comQuit)
|
|
|
@@ -122,6 +128,9 @@ func (mc *mysqlConn) Close() (err error) {
|
|
|
}
|
|
|
|
|
|
func (mc *mysqlConn) Prepare(query string) (driver.Stmt, error) {
|
|
|
+ if mc.buf == nil {
|
|
|
+ return nil, errInvalidConn
|
|
|
+ }
|
|
|
// Send command
|
|
|
err := mc.writeCommandPacketStr(comStmtPrepare, query)
|
|
|
if err != nil {
|
|
|
@@ -150,6 +159,9 @@ func (mc *mysqlConn) Prepare(query string) (driver.Stmt, error) {
|
|
|
}
|
|
|
|
|
|
func (mc *mysqlConn) Exec(query string, args []driver.Value) (driver.Result, error) {
|
|
|
+ if mc.buf == nil {
|
|
|
+ return nil, errInvalidConn
|
|
|
+ }
|
|
|
if len(args) == 0 { // no args, fastpath
|
|
|
mc.affectedRows = 0
|
|
|
mc.insertId = 0
|
|
|
@@ -191,6 +203,9 @@ func (mc *mysqlConn) exec(query string) error {
|
|
|
}
|
|
|
|
|
|
func (mc *mysqlConn) Query(query string, args []driver.Value) (driver.Rows, error) {
|
|
|
+ if mc.buf == nil {
|
|
|
+ return nil, errInvalidConn
|
|
|
+ }
|
|
|
if len(args) == 0 { // no args, fastpath
|
|
|
// Send command
|
|
|
err := mc.writeCommandPacketStr(comQuery, query)
|