What problem does it solve? C code generated against MariaDB Connector/C often contains subtle bugs: skipped mysql_init() calls, SQL injection from unescaped string concatenation, leaked result sets that break subsequent queries, wrong error-checking APIs, and unsafe thread sharing of connection handles. This Skill encodes the connector-specific behavior and traps so generated or reviewed C code uses libmariadb correctly. ## Core Features & Use Cases - API correctness rules: Covers the mysql_-prefixed public API, the mandatory mysql_init() → mysql_optionsv() → mysql_real_connect() sequence, and the buffered (mysql_store_result) vs unbuffered (mysql_use_result) result split with mandatory mysql_free_result(). - Prepared statements and transactions: Documents the ?-placeholder MYSQL_BIND workflow, bulk inserts via STMT_ATTR_ARRAY_SIZE array binding, one-shot mariadb_stmt_execute_direct(), and explicit mysql_autocommit(conn, 0) handling since autocommit is ON by default. - Safety guidance: Addresses SQL injection prevention with mysql_real_escape_string(), binary-safe mysql_real_query(), multi-result handling with mysql_next_result(), and per-thread connection rules with mysql_thread_init()/mysql_thread_end(). - Use Case: When asked to write a C program that inserts rows into MariaDB, the Skill produces code using prepared statements with array binding, proper error checks via mysql_stmt_errno(), and correct handle cleanup ordering. ## Quick Start Write C code that connects to MariaDB with Connector/C, runs a parameterized SELECT with a prepared statement, and performs a two-statement transaction with proper error handling.