Home  >  Article  >  Database  >  Detailed introduction to the ColumnCount package and analysis of the mysql protocol

Detailed introduction to the ColumnCount package and analysis of the mysql protocol

黄舟
黄舟Original
2017-03-07 13:30:081392browse


git

https://github.com/sea-boat/mysql-protocol

Overview

The ColumnCount package is part of the package when the server returns the ResultSet.

mysql communication message structure

##string payloadMessage body, the length is the previously specified payload length
Type Name Description
int5bdf4c78156c7953567bb5a0aef2fc53 payload length Stored according to the least significant byte first, 3-byte payload and 1-byte sequence number combination Into the message header
intf35d6e602fd7d0f0edfa6f7d103c1b57 sequence number
ColumnCount package

Payload

Protocol::LengthEncodedInteger

More details: http://dev.mysql.com/doc/internals/en/com-query-response.html#packet-ProtocolText:: ResultsetRow

ColumnCount package class

/**
 * 
 * <pre class="brush:php;toolbar:false"><b>column count packet.</b>
* @author *
seaboat
*
<b>email: </b>849586227@qq.com
*
<b>blog: </b>http://www.php.cn/;/pre>
 * @version 1.0
 * @see http://www.php.cn/
 */public class ColumnCountPacket extends MySQLPacket {

    public int columnCount;    
    public void read(byte[] data) {
        MySQLMessage mm = new MySQLMessage(data);        
        this.packetLength = mm.readUB3();        
        this.packetId = mm.read();        
        this.columnCount = (int) mm.readLength();
    }    
    @Override
    public void write(ByteBuffer buffer) {        
    int size = calcPacketSize();
        BufferUtil.writeUB3(buffer, size);
        buffer.put(packetId);
        BufferUtil.writeLength(buffer, columnCount);
    }    
    @Override
    public int calcPacketSize() {        
    int size = BufferUtil.getLength(columnCount);        
    return size;
    }    @Override
    protected String getPacketInfo() {        
    return "MySQL Column Count Packet";
    }

}

The above is a detailed introduction to the ColumnCount package and analysis of the mysql protocol. For more related content, please pay attention to the PHP Chinese website (www.php.cn)!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn