MySQLi_STMT
PHP Manual

mysqli_stmt::prepare

mysqli_stmt_prepare

(PHP 5)

mysqli_stmt::prepare -- mysqli_stmt_preparePrepara uma declaração SQL para execução

Descrição

Estilo orientado a objeto (método)

mixed mysqli_stmt::prepare ( string $query )

Estilo procedural:

bool mysqli_stmt_prepare ( mysqli_stmt $stmt , string $query )

Prepares the SQL query pointed to by the null-terminated string query.

Os marcadores de parâmetros devem ser ligados as variáveis da aplicação utilizando-se mysqli_stmt_bind_param() e/ou mysqli_stmt_bind_result() antes de executar a declaração ou trazer os resultados.

Parâmetros

stmt

Apenas para estilo de procedimento: Um identificador de statement retornado por mysqli_stmt_init().

query

A query, como uma string. Deve conter somente uma única declaração SQL.

Você pode incluir um ou mais marcadores de parâmetros na declaração SQL colocando a interrogação (?) nas posições apropriadas.

Nota: Você não deve adicionar um ponto-e-virgula ou \g para terminar a declaração

Nota: Os marcadores são permitidos somente em alguns lugares das declarações SQL. Por exemplo, eles são permitidos na lista VALUES() de um INSERT (para especificar valores das colunas em uma linha), ou na comparação de uma coluna na cláusula WHERE para especificar um valor de comparação.
Entretanto, eles não são permitidos em identificadores (como nomes de tabela e coluna, na lista que nomeia os nomes das colunas a serem retornados por uma declaração SELECT), ou para especificar ambos os operandos de um operador binário como o = sinal de igual. A última restrição é necessária pois seria impossível determinar o tipo do parâmetro. No geral, os parâmetros são permitidos somente em declarações de Linguagem de Manipulação de Dados (no inglês DML), e não em Linguagem Definição de Dados (DDL).

Valor Retornado

Retorna TRUE em caso de sucesso ou FALSE em falhas.

Exemplos

Exemplo #1 Estilo orientado a objeto

<?php
$mysqli 
= new mysqli("localhost""my_user""my_password""world");

/* verifica coenxão */
if (mysqli_connect_errno()) {
    
printf("Conexão falhou: %s\n"mysqli_connect_error());
    exit();
}

$cidade "Curitiba";

/* cria uma declaração preparada */
$stmt =  $mysqli->stmt_init();
if (
$stmt->prepare("SELECT Estado FROM Cidade WHERE Nome=?")) {

    
/* atribui os parâmetros aos marcadores */
    
$stmt->bind_param("s"$cidade);

    
/* executa a query */
    
$stmt->execute();

    
/* atribui as variáveis de resultado */
    
$stmt->bind_result($estado);

    
/* busca o valor */
    
$stmt->fetch();

    
printf("%s está no estado %s\n"$cidade$estado);

    
/* fecha a declaração */
    
$stmt->close();
}

/* fecha a conexão */
$mysqli->close();
?>

Exemplo #2 Estilo procedural

<?php
$link 
mysqli_connect("localhost""my_user""my_password""world");

/* verifica coenxão */
if (mysqli_connect_errno()) {
    
printf("Conexão falhou: %s\n"mysqli_connect_error());
    exit();
}

$cidade "Curitiba";

/* cria uma declaração preparada */
$stmt mysqli_stmt_init($link);
if (
mysqli_stmt_prepare($stmt'SELECT Estado FROM Cidade WHERE Nome=?')) {

    
/* atribui os parâmetros aos marcadores */
    
mysqli_stmt_bind_param($stmt"s"$cidade);

    
/* executa a query */
    
mysqli_stmt_execute($stmt);

    
/* atribui as variáveis de resultado */
    
mysqli_stmt_bind_result($stmt$estado);

    
/* busca o valor */
    
mysqli_stmt_fetch($stmt);

    
printf("%s está no estado %s\n"$cidade$estado);

    
/* fecha a declaração */
    
mysqli_stmt_close($stmt);
}

/* fecha a conexão */
mysqli_close($link);
?>

O exemplo acima irá imprimir:

Curitiba está no estado Paraná

Veja Também

mysqli_stmt_init() - Initializes a statement and returns an object for use with mysqli_stmt_prepare, mysqli_stmt_execute() - Executa uma preparada query, mysqli_stmt_fetch() - Obtém resultados de um preparado comando e os coloca nas determinadas variáveis, mysqli_stmt_bind_param() - Passa variáveis para um preparado comando como parâmetros, mysqli_stmt_bind_result() - Passa variáveis para um preparado comando por resultado armazenado mysqli_stmt_close() - Closes a prepared statement.


MySQLi_STMT
PHP Manual