Função PHP mysqli_stmt_attr_get ()
Definição e Uso
Você pode criar uma instrução preparada, que possui marcadores de parâmetro ("?") No caso de valores usando a função mysqli_prepare (). Depois de preparar uma instrução, você precisa ligar os valores aos parâmetros da instrução criada usando a função mysqli_stmt_bind_param () .
Você pode definir vários atributos para a instrução que muda seu comportamento usando a função mysqli_stmt_attr_set ().
A função mysqli_stmt_attr_get () aceita um objeto de instrução e um atributo e retorna o valor atual do atributo fornecido.
Sintaxe
mysqli_stmt_attr_get($stmt, $attr);
Parâmetros
Sr. Não | Parâmetro e Descrição |
---|---|
1 | stmt(Mandatory) Este é um objeto que representa uma declaração preparada. |
2 | attr(Mandatory) Este é um valor inteiro que representa o atributo que você deseja definir para a instrução fornecida, que pode ser um dos seguintes -
|
Valores Retornados
A função PHP mysqli_stmt_attr_get () retorna o valor do atributo especificado em caso de sucesso e false se o atributo fornecido não for encontrado.
Versão PHP
Esta função foi introduzida pela primeira vez no PHP Versão 5 e funciona em todas as versões posteriores.
Exemplo
O exemplo a seguir demonstra o uso da função mysqli_stmt_attr_set () (no estilo procedural) -
<?php
$con = mysqli_connect("localhost", "root", "password", "mydb");
$query = "CREATE TABLE Test(Name VARCHAR(255), AGE INT)";
mysqli_query($con, $query);
print("Table Created.....\n");
//insert into Test values('Raju', 25);
$stmt = mysqli_prepare($con, "INSERT INTO Test values(?, ?)");
mysqli_stmt_bind_param($stmt, "si", $Name, $Age);
$Name = 'Raju';
$Age = 25;
print("Record Inserted.....\n");
$res = mysqli_stmt_attr_set($stmt, MYSQLI_STMT_ATTR_UPDATE_MAX_LENGTH, TRUE);
if($res){
print("Successful.....\n");
}else{
print("Failed.....\n");
}
$val = mysqli_stmt_attr_get($stmt, MYSQLI_STMT_ATTR_UPDATE_MAX_LENGTH);
print("Value: ".$val);
//Executing the statement
mysqli_stmt_execute($stmt);
//Closing the statement
mysqli_stmt_close($stmt);
//Closing the connection
mysqli_close($con);
?>
Isso produzirá o seguinte resultado -
Table Created.....
Record Inserted.....
Successful.....
Value: 1
Exemplo
No estilo orientado a objetos, a sintaxe desta função é $ stmt-> close (); A seguir está o exemplo desta função no estilo orientado a objetos $ minus;
<?php
//Creating a connection
$con = new mysqli("localhost", "root", "password", "mydb");
$query = "CREATE TABLE Test(Name VARCHAR(255), AGE INT)";
$con -> query($query);
print("Table Created.....\n");
//insert into Test values('Raju', 25);//,('Rahman', 30),('Sarmista', 27)";
$stmt = $con -> prepare( "INSERT INTO Test values(?, ?)");
$stmt -> bind_param("si", $Name, $Age);
$Name = 'Raju';
$Age = 25;
print("Record Inserted.....\n");
//Setting the attribute
$res= $stmt->attr_set(MYSQLI_STMT_ATTR_UPDATE_MAX_LENGTH, TRUE);
if($res){
print("Successful.....\n");
}else{
print("Failed.....\n");
}
$val = $stmt->attr_get(MYSQLI_STMT_ATTR_UPDATE_MAX_LENGTH);
print("Value: ".$val);
//Executing the statement
$stmt->execute();
//Closing the statement
$stmt->close();
//Closing the connection
$con->close();
?>
Isso produzirá o seguinte resultado -
Table Created.....
Record Inserted.....
Successful.....
Value: 1