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 MySQL foi finalizado.
CR_SERVER_LOST
A conexão ao servidor MySQL 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 Secção 12.1.7.5, “mysql_execute()
”.
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.