MySQL provides a client library written in the C programming language that you can use to write client programs that access MySQL databases. This library defines an application programming interface that includes the following facilities:
Connection management routines to establish and terminate a session with a server.
Routines to construct queries, send them to the server, and process the results.
Status- and error-reporting functions for determining the exact reason for an error when other C API calls fail.
This chapter shows how to use the client library to write your own programs. Some of the goals we'll keep in mind are consistency with existing client programs in the MySQL distribution, as well as modularity and reusability of the code. I assume you know something about programming in C, but I've tried not to assume you're an expert.
The chapter develops a series of client programs in a rough progression from very simple to more complex. The first part of this progression develops the framework for a client skeleton that does nothing but connect to and disconnect from the server. The reason for this is that although MySQL client programs are written for different purposes, they all have one thing in common: They establish a connection to the server.
We'll build the skeleton in steps:
Write some bare-bones connection and disconnection code (client1).
Add error checking (client2).
Add the ability to get connection parameters (host, user, password) at runtime (client4).
This framework is reasonably generic, and you can use it as the basis for any number of client programs. After developing it, we'll pause to consider how to handle various kinds of queries. Initially, we'll discuss how to handle specific hardcoded SQL statements, then develop code that can be used to process arbitrary statements. After that, we'll add our query-processing code to our client framework to develop another program (client5) that's similar to the mysql client.
We'll also consider (and solve) some common problems, such as, "How can I get information about the structure of my tables" and "How can I insert images in my database?"
This chapter discusses functions and data types from the clientlibrary only as they are needed. For a comprehensive listing of all functions and types, see Appendix F, "C API Reference." You can use that appendix as a reference for further background on any part of the client library you're trying to use.
The example programs are available online for downloading so you can try them directly without typing them in yourself. See Appendix A, "Obtaining and Installing Software," for instructions.
3.23.130.108