/* represents a connection to a database */
struct _pdo_dbh_t {
    /* driver specific methods */
    struct pdo_dbh_methods *methods;
/* driver specific data */
    void *driver_data;
/* credentials */
    char *username, *password;
/* if true, then data stored and pointed at by this handle must all be
     * persistently allocated */
    unsigned is_persistent:1;
/* if true, driver should act as though a COMMIT were executed between
     * each executed statement; otherwise, COMMIT must be carried out manually
     * */
    unsigned auto_commit:1;
/* if true, the driver requires that memory be allocated explicitly for
     * the columns that are returned */
    unsigned alloc_own_columns:1;
/* if true, commit or rollBack is allowed to be called */
    unsigned in_txn:1;                  
    /* max length a single character can become after correct quoting */
    unsigned max_escaped_char_length:3;
/* data source string used to open this handle */
    const char *data_source;
unsigned long data_source_len;
    /* the global error code. */
    pdo_error_type error_code;
enum pdo_case_conversion native_case