瀏覽代碼

proper affectedRows

Julien Schmidt 12 年之前
父節點
當前提交
9e961913c4
共有 2 個文件被更改,包括 9 次插入9 次删除
  1. 5 2
      connection.go
  2. 4 7
      packets.go

+ 5 - 2
connection.go

@@ -176,10 +176,13 @@ func (mc *mysqlConn) exec(query string) (err error) {
 			return
 		}
 
-		mc.affectedRows, err = mc.readUntilEOF()
-		if err != nil {
+		if mc.affectedRows > 0 {
+			_, err = mc.readUntilEOF()
 			return
 		}
+
+		mc.affectedRows, err = mc.readUntilEOF()
+		return
 	}
 
 	return

+ 4 - 7
packets.go

@@ -406,24 +406,23 @@ func (mc *mysqlConn) handleOkPacket(data []byte) (err error) {
 	// Position
 	pos := 1
 
+	var n int
+
 	// Affected rows [Length Coded Binary]
-	affectedRows, n, err := bytesToLengthCodedBinary(data[pos:])
+	mc.affectedRows, n, err = bytesToLengthCodedBinary(data[pos:])
 	if err != nil {
 		return
 	}
 	pos += n
 
 	// Insert id [Length Coded Binary]
-	insertID, n, err := bytesToLengthCodedBinary(data[pos:])
+	mc.insertId, n, err = bytesToLengthCodedBinary(data[pos:])
 	if err != nil {
 		return
 	}
 
 	// Skip remaining data
 
-	mc.affectedRows = affectedRows
-	mc.insertId = insertID
-
 	return
 }
 
@@ -602,7 +601,6 @@ func (mc *mysqlConn) readRow(columnsCount int) (*[]*[]byte, error) {
 		pos += n
 	}
 
-	mc.affectedRows++
 	return &row, nil
 }
 
@@ -1035,6 +1033,5 @@ func (mc *mysqlConn) readBinaryRow(rc *mysqlRows) (*[]*[]byte, error) {
 		}
 	}
 
-	mc.affectedRows++
 	return &row, nil
 }