English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

PHP 基础教程

PHP 高级教程

PHP & MySQL

PHP 参考手册

PHP mysqli_stmt_execute() 函数用法及示例

PHP MySQLi Guia de Referência

mysqli_stmt_execute()函数执行准备好的查询。

定义和用法

mysqli_stmt_execute()函数接受一个准备好的语句对象(使用prepare()函数创建)作为参数,并执行它,在执行时,任何存在的参数标记将自动替换为适当的数据。

在此函数之后,如果调用mysqli_stmt_affected_rows()函数(在UPDATE,DELETE,INSERT查询的情况下),则将获得受影响的行数。以同样的方式,如果调用mysqli_stmt_fetch()函数(在SELECT的情况下),将返回结果集。

语法

mysqli_stmt_execute($stmt);

参数

序号参数及说明
1

con(必需)

Este é o objeto da declaração preparada.}

Retorno

A função PHP mysqli_stmt_execute() retorna um valor booleano, no caso de sucessotrue,no caso de falhafalse.

Versão do PHP

Essa função foi introduzida inicialmente na versão do PHP5introduzido e pode ser usado em todas as versões mais recentes.

exemplos online

Supondo que já tenhamos criado uma tabela chamada employee no banco de dados MySQL, cujo conteúdo é o seguinte:

mysql> select * from employee;
+------------+--------------+------+------+--------+
| FIRST_NAME  | LAST_NAME                                    | AGE     | SEX     | INCOME     |
+------------+--------------+------+------+--------+
| Vinay       | Bhattacharya                                 |   20 | M          |  16000 |
| Sharukh     | Sheik                                        |   25 | M          |  18300 |
| Trupthi     | Mishra                                       |   24 | F          |  36000 |
| Sheldon     | Cooper                                       |   25 | M          |  12256 |
| Sarmista    | Sharma                                       |   28 | F          |  15000 |
+------------+--------------+------+------+--------+
5 linhas no conjunto (0.00 seg)

O seguinte exemplo demonstramysqli_stmt_execute()Uso da função (estilo procedimental), executando e preparando a instrução update:

<?php
   $con = mysqli_connect("localhost", "root", "password", "mydb");
   $stmt = mysqli_prepare($con, "UPDATE employee set INCOME=INCOME-? where INCOME > ?");
   mysqli_stmt_execute($stmt, "si", $reduct, $limit);
   $limit = 16000;
   $reduct = 5000;
   //Executar declaração
   mysqli_stmt_execute($stmt);
   print("Os registros foram atualizados......\n");
   //Fim da declaração
   mysqli_stmt_execute($stmt);
   //Fechar conexão
   mysqli_close($con);
?>

Exibir resultados

os registros foram atualizados......

Após a execução do programa acima,employeeO conteúdo da tabela é o seguinte:

mysql> select * from employee;
+------------+--------------+------+------+--------+
| FIRST_NAME  | LAST_NAME                                    | AGE     | SEX     | INCOME     |
+------------+--------------+------+------+--------+
| Vinay       | Bhattacharya                                 |   20 | M          |  16000 |
| Sharukh     | Sheik                                        |   25 | M          |  13300 |
| Trupthi     | Mishra                                       |   24 | F          |  31000 |
| Sheldon     | Cooper                                       |   25 | M          |  12256 |
| Sarmista    | Sharma                                       |   28 | F          |  15000 |
+------------+--------------+------+------+--------+
5 linhas no conjunto (0.00 seg)

exemplos online

No estilo orientado a objetos, a sintaxe dessa função é$stmt-> execute();。A seguir está um exemplo de estilo orientado a objetos para essa função, executando e preparando a instrução insert

<?php
   //Estabelecendo conexão
   $con = new mysqli("localhost", "root", "password", "mydb");
   //Criando uma tabela
   $con -> query("CREATE TABLE myplayers(ID INT, First_Name VARCHAR(255), Last_Name VARCHAR(255), Place_Of_Birth VARCHAR(255), Country VARCHAR(255))");
   print("Criar tabela.....\n");
   //Usar declarações preparadas para inserir valores na tabela
   $stmt = $con -> prepare( "INSERT INTO myplayers values(?, ?, ?, ?, ?)");
   $stmt -> bind_param("issss", $id, $fname, $lname, $pob, $country);
   $id = 1;
   $fname = 'Shikhar';
   $lname = 'Dhawan';
   $pob = 'Delhi';
   $country = 'India';
   //Executar declaração
   $stmt->execute();
   //Fim da declaração
   $stmt->close();
   //Fechar conexão
   $con->close();
?>

Exibir resultados

Criar tabela.....

exemplos online

Você também pode executarmysqli_stmt_prepare()Declaração criada pela função   -

<?php
   $con = mysqli_connect("localhost", "root", "password", "mydb");
   $query = "CREATE TABLE Test(Name VARCHAR(255), AGE INT)"; 
   mysqli_query($con, $query);
   print("Criar tabela.....\n");
   //Inicializar declaração
   $stmt = mysqli_stmt_init($con);
   mysqli_stmt_prepare($stmt, "INSERT INTO Test values(?, ?)");
   mysqli_stmt_bind_param($stmt, "si", $Name, $Age);
   $Name = 'Raju';
   $Age = 25;
   print("Inserir registros.....");
   //Executar declaração
   mysqli_stmt_execute($stmt);
   //Fim da declaração
   mysqli_stmt_close($stmt);
   //Fechar conexão
   mysqli_close($con);
?>

Exibir resultados

Criar tabela.....
Inserir registros.....

PHP MySQLi Guia de Referência