Note: A API para instruções preparadas ainda é assunto de revisão. Esta informação é fornecida para os adeptos, mas esteja ciente que a API pode alterar.
As funções disponíveis nas instruções preparadas estão resumidas aqui e desctias em maiores detalhes em um seção posterior. See Secção 12.1.7, “Descrição das Funções de Instrução Preparada da API C”.
| Função | Descrição | 
| mysql_prepare() | Prepara uma string SQL para execução. | 
| mysql_param_count() | Retorna o número de parâmetros em uma instrução SQL preparada. | 
| mysql_get_metadata() | Retorna metadados de instruções preparadas em forma de um conjunto de resultados. | 
| mysql_bind_param() | Associa o buffers de dados da aplicação com o parâmetro marcado na instrução SQL preparada. | 
| mysql_execute() | Executa a instrução preparada. | 
| mysql_stmt_affected_rows() | Retorna o número de registros alteradosi, deletados ou inseridos pela
                última consulta UPDATE,DELETE, ouINSERT. | 
| mysql_bind_result() | Associa o buffers de dados da aplicação com colunas no resultado. | 
| mysql_stmt_store_result() | Retorna o resultado completo para o cliente. | 
| mysql_stmt_data_seek() | Busca um número de registro arbitrário no resultado de uma consulta. | 
| mysql_stmt_row_seek() | Busca por um offset de registro no resultado de uma busca, utilizando o
                valor reotornado de mysql_stmt_row_tell(). | 
| mysql_stmt_row_tell() | Retorna a posição do cursor de registro. | 
| mysql_stmt_num_rows() | Retorna o total de registros do resultado de uma instrução armazenada. | 
| mysql_fetch() | Busca o próximo conjunto de dados do resultado e retorna os dados para todas as colunas limites. | 
| mysql_stmt_close() | Libera a memória usada pela instrução preparada. | 
| mysql_stmt_errno() | Retorna o número de erro para a última instrução executada. | 
| mysql_stmt_error() | Retorna a mensagem de erro para a última instrução executada. | 
| mysql_stmt_sqlstate() | Retorna o código de erro SQLSTATE para a execução da última instrução. | 
| mysql_send_long_data() | Envia dados longos em blocos para o servidor. | 
        Chama mysql_prepare() para preparar e iniciar
        o manipulador de instruções,
        mysql_bind_param() para fornecer os dados do
        parâmetro e mysql_execute() para executar a
        consulta. Você pode repetir o
        mysql_execute() alterando o valor do
        parâmetro no buffer respectivo fornecido por
        mysql_bind_param().
      
        Se a consulta é uma instrução SELECT ou
        qualquer outra consulta que produz um resultado,
        mysql_prepare() também retornará a
        informação dos meta dados do resultado na forma de um
        resultado MYSQL_RES  através de um
        mysql_get_metadata().
      
        Você pode forncer o buffer de resultado usando
        mysql_bind_result(), assim
        mysql_fetch() retornará automaticamente os
        dados para este buffer. Esta busca é feita registro a registro.
      
        Você também pode enviar o texto ou dado binário em blocos
        para o servidor utilizando
        mysql_send_long_data(), especficando a
        opção is_long_data=1 ou
        length=MYSQL_LONG_DATA ou
        -2 na estrutura MYSQL_BIND
        fornecida com mysql_bind_param().
      
        Quando a execução for completada, o handler da instrução
        deve ser fechado usando mysql_stmt_close()
        para que todos os recursos associados a ele sejam liberados.
      
        Se você obteve os metadados de um resultado de uma instrução
        SELECT chamando
        mysql_get_metadata(), você também deve
        liberá-lo usando mysql_free_result().
      
Execution Steps:
Para prepara e executar uma instrução, uma aplicação:
            Chama mysql_prepare() e passa uma string
            contendo uma instrução SQL. Em uma operação de preparo
            bem sucedida, o mysql_prepare retorna o
            manipulador de instrução válido para a aplicação.
          
            Se a consulta produz um resultado, chama
            mysql_get_metadata para obter o conjunto
            de resultado de metadados. Este metadado está na forma de
            um resultado, embora um separado daqueles que contém as
            linhas retornadas pela consulta. O resultado de metadados
            indica quantos colunas estão no resultado e contém
            informações sobre cada coluna.
          
            Define o valor de qualquer parâmetro usando
            mysql_bind_param. Todos os parâmetros
            devem ser definidos. De outra forma a execução da consulta
            retornará um erro ou produzirá resultados inesperados.
          
            Chama mysql_execute() para executar a
            instrução.
          
            Se a consulta produz um resultado, liga o buffer de dados
            usado para retornar o valor do registro chamando
            mysql_bind_result().
          
            Busca os dados no buffer, registro a registro chamando
            mysql_fetch() repetidas vezes até não
            haver mais registros.
          
Repete os passos de 3 a 6 como necessário, alterando o valor dos parâmetros e re-executando a instrução.
        Quando mysql_prepare() é chamado, o
        protocolo cliente/servidor do MySQL realiza as seguintes
        ações:
      
O servidor analiza a consulta e envia o status de OK de volta para o cliente atribuindo uma identificação de instrução. Ele também envia um número total de parâmetros, uma contagem de colunas e sua meta informação se for um resultado orientado a consulta. Toda a sintaxe e semântica da consulta é verificada pelo servidor durante a chamada.
O cliente utiliza esta identificação da instrução para as operações adicionais, assim o servidor pode identificar a instrução dentre outras existentes. O cliente também aloca um manipulador de instruções com esta identificação e o retorna para a aplicação.
Quando o mysql_execute() é chamado, no protocolo cliente/servidor do MySQL realiza as seguintes operações:
O cliente utiliza o manipulador de instruções e envia o dado do parâmetro para o servidor.
O servidor identifica a instrução usando a identificação fornecida pelo cliente, substitui o marcador do parâmetro com o dado fornecido mais recente e executa a consulta. Se a consulta produz um resultado, o servidor envia o dado de volta para o cliente. Senão envia o status de OK como número total de registros alterados, deletados ou inseridos.
        Quando mysql_fetch() é chamado, no protocolo
        cliente/servidor do MySQL realiza as seguintes ações:
      
O cliente lê os dados do pacote registro por registro e o coloca no buffer de dados da aplicação fazendo as conversões necessárias. Se o tipo do buffer de aplicação é o mesmo do tipo do campo retornado do servidor, as conversões são diretas.
        Você pode obter o código de erro, mensagens e o valor SQLSTATE
        da instrução utilizando mysql_stmt_errno(),
        mysql_stmt_error() e
        mysql_stmt_sqlstate() respectivamente.
      
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.

