English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
A função mysqli_stmt_reset() redefine a declaração preparada
mysqli_stmt_reset()A função aceita um objeto de declaração preparada (aberta anteriormente) como parâmetro e a redefine, ou seja, ela redefine os erros, os conjuntos de resultados não armazenados e os dados enviados. As consultas, os bindings e os conjuntos de resultados armazenados não serão alterados.
mysqli_stmt_reset($stmt);
Número | Parâmetros e descrição |
---|---|
1 | con(obrigatório) Este é o objeto da declaração preparada. |
A função PHP mysqli_stmt_reset() retorna um valor booleano, no caso de sucesso éverdadeiro, no caso de falha, éfalso.
Esta função foi introduzida no PHP versão5introduzido e pode ser usado em todas as versões mais recentes.
A seguir, um exemplo demonstramysqli_stmt_reset()Função de uso (estilo procedimental)-
<?php $con = mysqli_connect("localhost", "root", "password", "mydb"); mysqli_query($con, "CREATE TABLE myplayers(ID INT, First_Name VARCHAR(255), Último_Nome VARCHAR(255), Local_de_Nascimento VARCHAR(255), País VARCHAR(255))"); print("Criando tabela.....\n"); mysqli_query($con, "INSERT INTO myplayers values(1, 'Sikhar', 'Dhawan', 'Delhi', 'India')"); mysqli_query($con, "INSERT INTO myplayers values(2, 'Jonathan', 'Trott', 'CapeTown', 'SouthAfrica')"); print("Inserir registro.....\n"); //Recuperar o conteúdo da tabela $stmt = mysqli_prepare($con, "SELECT * FROM myplayers"); //Executar sentença mysqli_stmt_execute($stmt); $res = mysqli_stmt_reset($stmt); if($res){ print("Resetado com sucesso"); } //Ligar os valores do resultado aos variáveis $res = mysqli_stmt_bind_result($stmt, $id, $fname, $lname, $pob, $country); while (mysqli_stmt_fetch($stmt)) { print("Id: ".$id."\n"); print("fname: ".$fname."\n"); print("lname: ".$lname."\n"); print("pob: ".$pob."\n"); print("country: ".$country."\n"); print("\n"); } //Fim da sentença mysqli_stmt_close($stmt); //Fechar conexão mysqli_close($con); ?>
Resultados de Saída
Inserir registro..... Resetado com sucesso
Como resetamos a sentença no meio, não será impresso o conteúdo da saída sem função reset, o programa gerará a seguinte saída-
Inserir registro..... Reset com Sucesso E:\PHPExamples>php procedure_oriented.php Criando tabela..... Inserir registro..... Id: 1 fname: Sikhar lname: Dhawan pob: Delhi country: India Id: 2 fname: Jonathan lname: Trott pob: CapeTown country: SouthAfrica
No estilo orientado a objetos, a sintaxe dessa função é$stmt-> close();。A seguir está um exemplo da função nessaestyle orientada a objetos;
<?php //Estabelecer conexão $con = new mysqli("localhost", "root", "password", "mydb"); //Criando uma tabela $con -> query("CREATE TABLE players(ID INT, Primeiro_Nome VARCHAR(255), Último_Nome VARCHAR(255), Local_de_Nascimento VARCHAR(255), País VARCHAR(255))"); print("Criando tabela.....\n"); //Usar a sentença preparada para inserir valores na tabela $stmt = $con -> prepare("INSERT INTO players values(?, ?, ?, ?, ?"); $res = $stmt->reset(); if($res){ print("Reset com Sucesso"); } //Ligando valores aos marcadores de parâmetros $stmt -> bind_param("issss", $id, $fname, $lname, $pob, $country); $id = 1; $fname = 'Shikhar'; $lname = 'Dhawan'; $pob = 'Delhi'; $country = 'India'; //Executar sentença $stmt->execute(); //Fim da sentença $stmt->close(); //Fechar conexão $con->close(); ?>
Resultados de Saída
Criando tabela..... Reset com Sucesso
E o conteúdo da tabela de jogadores ficará vazio-
mysql> drop table players; Query OK, 0 linhas afetadas (0.26 sec)
Se você remover a função reset() e executar o programa acima, o conteúdo da tabela players será como follows:
mysql> select * from players; +------+------------+-----------+----------------+---------+ | ID | Primeiro_Nome | Último_Nome | Local_de_Nascimento | País | +------+------------+-----------+----------------+---------+ | 1 | Shikhar | Dhawan | Delhi | Índia | +------+------------+-----------+----------------+---------+ 1 row in set (0.00 sec)