English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
A função mysqli_stmt_bind_result() vincula variáveis a declarações preparadas para armazenar resultados
mysqli_stmt_bind_result()A função é usada para vincular as colunas do conjunto de resultados a variáveis. Após vincular as variáveis, você precisa chamar mysqli_stmt_fetch() A função é usada para obter os valores das colunas de uma variável específica.
mysqli_stmt_bind_result($stmt, $var1, $var2...);
Número | Parâmetros e descrição |
---|---|
1 | stmt(obrigatório) Este é o objeto que representa a declaração preparada. |
2 | var1(obrigatório) isto significa que a variável deve ser vinculada à coluna. |
A função PHP mysqli_stmt_bind_result() retorna um valor booleano, no caso de sucesso étrue, no caso de falha, éfalse.
Esta função foi introduzida na versão do PHP5introduzido e pode ser usado em todas as versões mais recentes.
A seguir, um exemplo demonstra:mysqli_stmt_bind_result()Uso da função (estilo procedimental), vincular o resultado a uma variável:
<?php $con = mysqli_connect("localhost", "root", "password", "mydb"); mysqli_query($con, "CREATE TABLE myplayers(ID INT, Primeiro_Nome VARCHAR(255), Sobrenome VARCHAR(255), Local_de_Nascimento VARCHAR(255), País VARCHAR(255)) print("Criar 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')"); mysqli_query($con, "INSERT INTO myplayers values(3, 'Kumara', 'Sangakkara', 'Matale', 'Srilanka')"); print("insert record.....\n"); //检索表的内容 $stmt = mysqli_prepare($con, "SELECT * FROM myplayers"); //Executar Declaração mysqli_stmt_execute($stmt); //Ligar os valores do resultado ao variável 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 Declaração mysqli_stmt_close($stmt); //Fechar Conexão mysqli_close($con); ?>
Resultados de Saída
Criando tabelas..... insert record..... Id: 1 fname: Sikhar lname: Dhawan pob: Delhi country: India Id: 2 fname: Jonathan lname: Trott pob: CapeTown country: SouthAfrica Id: 3 fname: Kumara lname: Sangakkara pob: Matale country: Srilanka
在面向对象风格中,此函数的语法为$stmt-> bind_result();。以下是面向对象风格中此函数的示例,将变量绑定到结果集:
<?php //建立连接 $con = new mysqli("localhost", "root", "password", "mydb"); $con -> query("CREATE TABLE Test(Name VARCHAR(255), AGE INT); $con -> query("insert into Test values('Raju', 25),('Rahman', 30),('Sarmista', 27); print("Criar tabela.....\n"); $stmt = $con -> prepare("SELECT * FROM Test WHERE Name in(?, ?); $stmt ->vincular_param("ss", $name)1, $name2); $name1 = \ $name2 = \ print("Registros Apagados.....\n"); //Executar Declaração $stmt->executar(); //Vincular variáveis ao conjunto de resultados $stmt->vincular_result($name, $age); enquanto ($stmt->obter()) { print("Nome: ").print($name).print("\n"); print("Idade: ").print($age).print("\n"); } //Fim da Declaração $stmt->fechar(); //Fechar Conexão $con->fechar(); ?>
Resultados de Saída
Criando tabelas..... Registros Apagados..... Nome: Raju Idade: 25 Nome: Rahman Idade: 30
A seguir, um exemplo de uso das funções mysqli_stmt_bind_result() e mysqli_stmt_fetch() para obter os resultados da consulta DESCRIBE e vincular os valores ao(s) variável(is):
<?php $con = mysqli_connect("localhost", "root", "password", "mydb"); mysqli_query($con, "CREATE TABLE myplayers(ID INT, Primeiro_Nome VARCHAR(255), Sobrenome VARCHAR(255), Local_de_Nascimento VARCHAR(255), País VARCHAR(255)) print("Criar tabela.....\n"); //Descrição da tabela $stmt = mysqli_prepare($con, "DESC myplayers"); //Executar Declaração mysqli_stmt_execute($stmt); //Ligar os valores do resultado ao variável mysqli_stmt_bind_result($stmt, $field, $type, $null, $key, $default, $extra); while (mysqli_stmt_fetch($stmt)) { print("Field: ").print($field).print("\n"); print("Type: ").print($type).print("\n"); print("Null: ").print($null).print("\n"); print("Key: ").print($key).print("\n"); print("Default: ").print($default).print("\n"); print("Extra: ").print($extra).print("\n"); print("\n"); } //Fim da Declaração mysqli_stmt_close($stmt); //Fechar Conexão mysqli_close($con); ?>
Resultados de Saída
Criando tabelas..... Campo: ID Tipo: int(11) Nulo: SIM Chave: Padrão: Extra: Campo: Nome Tipo: varchar(255) Nulo: SIM Chave: Padrão: Extra: Campo: Sobrenome Tipo: varchar(255) Nulo: SIM Chave: Padrão: Extra: Campo: Local_de_Nascimento Tipo: varchar(255) Nulo: SIM Chave: Padrão: Extra: Campo: País Tipo: varchar(255) Nulo: SIM Chave: Padrão: Extra:
O seguinte exemplo usa as funções mysqli_stmt_bind_result() e mysqli_stmt_fetch() para obter os resultados da consulta SHOW TABLES, listando todas as tabelas no banco de dados:
<?php $con = mysqli_connect("localhost", "root", "password"); //Selecionando o banco de dados mysqli_query($con, "CREATE DATABASE NewDatabase"); mysqli_select_db($con, "NewDatabase"); //Criando tabelas mysqli_query($con, "CREATE TABLE test1(Nome VARCHAR(255), Idade INT)"); mysqli_query($con, "CREATE TABLE test2(Nome VARCHAR(255), Idade INT)"); mysqli_query($con, "CREATE TABLE test3(Nome VARCHAR(255), Idade INT)"); print("Tabelas Criadas.....\n"); //Descrição da Tabela $stmt = mysqli_prepare($con, "SHOW TABLES"); //Executar Declaração mysqli_stmt_execute($stmt); //Ligar os valores do resultado ao variável mysqli_stmt_bind_result($stmt, $table_name); print("As seguintes tabelas estão todas no banco de dados atual: \n"); while (mysqli_stmt_fetch($stmt)) { print($table_name."\n"); } //Fim da Declaração mysqli_stmt_close($stmt); //Fechar Conexão mysqli_close($con); ?>
Resultados de Saída
Tabelas Criadas..... As seguintes tabelas estão todas no banco de dados atual: test1 test2 test3