mysql_prepare()
MYSQL_STMT * mysql_prepare(MYSQL *mysql, const char *query, unsigned long length)
Descrição
Prepara a consulta SQL apontada pela string com terminação em nulo query
, e retorna um handle da instrução para ser usado por operações adicionais na instrução. A consulta deve consistir de uma única instrução SQL. Você não deve adicionar ponto e virgula (';
') ou \g a instrução.
A aplicação pode incluir um ou mais marcadores de parâmetro na instrução SQL, embutindo interrogações ('?
') na string SQL na posição aprpriada.
Os marcadores só são válidos em certos lugares na instrução SQL. Por exemplo, eles não são permitidos em lista VALUES()
de uma instrução INSERT
(para especificar valores para uma linha ou em uma comparação com uma coluna em uma cláusula WHERE
para especificar uma valor de comparação. No entanto, eles não são permitidos como identificadores (tais como nomes de colunas ou tabelas), na lista select que indica as colunas a serem retornadas por uma instrução SELECT
), ou para especificar ambos operandos de um operador binário como o sinal de igual =
. A última restrição é necessária porque seria impossível determinar o tipo do parâmetro. Em geral, parâmetros são válidos somente em instrução de Linguagem de Manipulação de Dados (Data Manipulation Languange-DML), e não em instruções de Linguagem de Definição de Dados (Data Defination Language-DDL).
Os marcadores de parâmetro devem limitar variáveis de aplicações utilizando mysql_bind_param()
antes de executar a instrução.
Valor Retornado
Um ponteiro para uma estrutura MYSQL_STMT
se o preparo obteve sucesso. NULL
se ocorreu um erro.
Erros
CR_COMMANDS_OUT_OF_SYNC
Os comando foram executados em uma ordem inpropriada.
CR_OUT_OF_MEMORY
Falta de memória
CR_SERVER_GONE_ERROR
O servidor MariaDB foi finalizado.
CR_SERVER_LOST
A conexão ao servidor MariaDB foi perdida durante a consulta.
CR_UNKNOWN_ERROR
Um erro desconhecido ocorreu.
Se o preparo não obteve sucesso (isto é, mysql_prepare()
retorna um ponteiro NULL
), as mensagens de erros podem ser obtidas chamando mysql_error()
.
Exemplo
Para o uso de mysql_prepare()
consulte o exemplo de "mysql_execute()
".