Mysqli bind variables php

PHP mysqli_stmt_bind_param() Function

The mysqli_stmt_bind_param() function is used to bind variables to the parameter markers of a prepared statement.

Syntax

mysqli_stmt_bind_param($stmt, $types, $var1, $var2. );

Parameters

This is an object representing a prepared statement.

A string (of individual characters) specifying the types of the variables where −

  • i represents an integer type
  • d represents an double type
  • s represents an string type
  • b represents an blob type

Values for the variables, separated by commas.

Return Values

The PHP mysqli_stmt_bind_param() function returns a boolean value which is true on success and false on failure.

PHP Version

This function was first introduced in PHP Version 5 and works works in all the later versions.

Example

Following example demonstrates the usage of the mysqli_stmt_bind_param() function (in procedural style) −

 query("CREATE TABLE myplayers(ID INT, First_Name VARCHAR(255), Last_Name VARCHAR(255), Place_Of_Birth VARCHAR(255), Country VARCHAR(255))"); print("Table Created. \n"); //Inserting values into the table using prepared statement $stmt = $con -> prepare( "INSERT INTO myplayers values(?, ?, ?, ?, ?)"); //Binding values to the parameter markers $stmt -> bind_param("issss", $id, $fname, $lname, $pob, $country); $id = 1; $fname = 'Shikhar'; $lname = 'Dhawan'; $pob = 'Delhi'; $country = 'India'; //Executing the statement $stmt->execute(); //Closing the statement $stmt->close(); //Closing the connection $con->close(); ?>

This will produce following result −

Example

In object oriented style the syntax of this function is $stmt->close(); Following is the example of this function in object oriented style $minus;

 query("CREATE TABLE myplayers(ID INT, First_Name VARCHAR(255), Last_Name VARCHAR(255), Place_Of_Birth VARCHAR(255), Country VARCHAR(255))"); print("Table Created. \n"); //Inserting values into the table using prepared statement $stmt = $con -> prepare( "INSERT INTO myplayers values(?, ?, ?, ?, ?)"); //Binding values to the parameter markers $stmt -> bind_param("issss", $id, $fname, $lname, $pob, $country); $id = 1; $fname = 'Shikhar'; $lname = 'Dhawan'; $pob = 'Delhi'; $country = 'India'; //Executing the statement $stmt->execute(); //Closing the statement $stmt->close(); //Closing the connection $con->close(); ?>

This will produce following result −

Example

Following is another example of this function −

This will produce following result −

Источник

mysqli_stmt_bind_param

Привязывает переменные к меткам параметров в SQL выражении, которое было подготовлено фукнцией mysqli_prepare() .

Замечание:

Если размер данных переменной превышает максимально допустимый размер пакета (max_allowed_packet), необходимо задать значение b параметру types и использовать функцию mysqli_stmt_send_long_data() , которая будет передавать данные пакетами.

Замечание:

При использовании mysqli_stmt_bind_param() совместно с call_user_func_array() необходимо соблюдать особую осторожность. Нужно принимать во внимание, что mysqli_stmt_bind_param() принимает в качестве параметров только ссылки на значения, в то время как call_user_func_array() принимает список параметров, которые могут передаваться как по ссылке, так и по значению.

Список параметров

Только для процедурного стиля: Идентификатор выражения, полученный с помощью mysqli_stmt_init() .

Строка содержащая один или более символов, каждый из которых задает тип значения привязываемой переменной:

Символы задающие тип
Символ Описание
i соответствующая переменная имеет тип integer
d соответствующая переменная имеет тип double
s соответствующая переменная имеет тип string
b соответствующая переменная является большим двоичным объектом (blob) и будет пересылаться пакетами

Количество переменных и длина строки types должны в точности соответствовать количеству параметров в запросе.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Объектно-ориентированный стиль

$mysqli = new mysqli ( ‘localhost’ , ‘my_user’ , ‘my_password’ , ‘world’ );

/* проверка подключения */
if ( mysqli_connect_errno ()) printf ( «Не удалось подключиться: %s\n» , mysqli_connect_error ());
exit();
>

$stmt = $mysqli -> prepare ( «INSERT INTO CountryLanguage VALUES (?, ?, ?, ?)» );
$stmt -> bind_param ( ‘sssd’ , $code , $language , $official , $percent );

$code = ‘DEU’ ;
$language = ‘Bavarian’ ;
$official = «F» ;
$percent = 11.2 ;

/* выполнение подготовленного запроса */
$stmt -> execute ();

printf ( «%d строк вставлено.\n» , $stmt -> affected_rows );

/* закрываем запрос */
$stmt -> close ();

/* очищаем таблицу CountryLanguage */
$mysqli -> query ( «DELETE FROM CountryLanguage WHERE Language=’Bavarian'» );
printf ( «%d строк удалено.\n» , $mysqli -> affected_rows );

/* закрываем подключение */
$mysqli -> close ();
?>

Пример #2 Процедурный стиль

$link = mysqli_connect ( ‘localhost’ , ‘my_user’ , ‘my_password’ , ‘world’ );

/* проверка подключения */
if (! $link ) printf ( «Не удалось подключиться: %s\n» , mysqli_connect_error ());
exit();
>

$stmt = mysqli_prepare ( $link , «INSERT INTO CountryLanguage VALUES (?, ?, ?, ?)» );
mysqli_stmt_bind_param ( $stmt , ‘sssd’ , $code , $language , $official , $percent );

$code = ‘DEU’ ;
$language = ‘Bavarian’ ;
$official = «F» ;
$percent = 11.2 ;

/* выполнение подготовленного запроса */
mysqli_stmt_execute ( $stmt );

printf ( «%d строк вставлено.\n» , mysqli_stmt_affected_rows ( $stmt ));

/* закрываем запрос */
mysqli_stmt_close ( $stmt );

/* очищаем таблицу CountryLanguage */
mysqli_query ( $link , «DELETE FROM CountryLanguage WHERE Language=’Bavarian'» );
printf ( «%d строк удалено.\n» , mysqli_affected_rows ( $link ));

/* закрываем подключение */
mysqli_close ( $link );
?>

Результат выполнения данных примеров:

1 строк вставлено. 1 Row deleted.

Смотрите также

  • mysqli_stmt_bind_result() — Привязка переменных к подготовленному запросу для размещения результата
  • mysqli_stmt_execute() — Выполняет подготовленный запрос
  • mysqli_stmt_fetch() — Связывает результаты подготовленного выражения с переменными
  • mysqli_prepare() — Подготавливает SQL выражение к выполнению
  • mysqli_stmt_send_long_data() — Отправка данных блоками
  • mysqli_stmt_errno() — Возвращает код ошибки выполнения последнего запроса
  • mysqli_stmt_error() — Возвращает строку с пояснением последней ошибки при выполнении запроса

Источник

mysqli_stmt_bind_result

Привязывает столбцы результирующего набора к переменным.

При вызове mysqli_stmt_fetch() для выборки данных, протокол клиент-серверного взаимодействия MySQL помещает выбранные данные в переменные var1, . привязанные к столбцам результата выборки.

Замечание:

Следует заметить, что все столбцы должны быть привязаны к переменным после вызова mysqli_stmt_execute() и до вызова mysqli_stmt_fetch() . В зависимости от типов данных столбцов привязанные переменные могут неявно изменять свой PHP тип.

Столбцы можно привязывать и перепривязывать многократно, даже когда результирующий набор уже частично выбран. Новая привязка даст эффект при следующем вызове mysqli_stmt_fetch() .

Список параметров

Только для процедурного стиля: Идентификатор выражения, полученный с помощью mysqli_stmt_init() .

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Объектно-ориентированный стиль

$mysqli = new mysqli ( «localhost» , «my_user» , «my_password» , «world» );

if ( mysqli_connect_errno ()) printf ( «Не удалось подключиться: %s\n» , mysqli_connect_error ());
exit();
>

/* подготовка запроса */
if ( $stmt = $mysqli -> prepare ( «SELECT Code, Name FROM Country ORDER BY Name LIMIT 5» )) $stmt -> execute ();

/* привязка переменных к запросу */
$stmt -> bind_result ( $col1 , $col2 );

/* выборка данных */
while ( $stmt -> fetch ()) printf ( «%s %s\n» , $col1 , $col2 );
>

/* закрываем запрос */
$stmt -> close ();
>
/* закрываем подключение */
$mysqli -> close ();

Пример #2 Процедурный стиль

$link = mysqli_connect ( «localhost» , «my_user» , «my_password» , «world» );

/* попытка подключения */
if (! $link ) printf ( «Не удалось подключиться: %s\n» , mysqli_connect_error ());
exit();
>

/* подготовка запроса */
if ( $stmt = mysqli_prepare ( $link , «SELECT Code, Name FROM Country ORDER BY Name LIMIT 5» )) mysqli_stmt_execute ( $stmt );

/* привязка переменных к запросу */
mysqli_stmt_bind_result ( $stmt , $col1 , $col2 );

/* выборка данных */
while ( mysqli_stmt_fetch ( $stmt )) printf ( «%s %s\n» , $col1 , $col2 );
>

/* закрываем запрос */
mysqli_stmt_close ( $stmt );
>

/* закрываем подключение */
mysqli_close ( $link );
?>

Результат выполнения данных примеров:

AFG Afghanistan ALB Albania DZA Algeria ASM American Samoa AND Andorra

Смотрите также

  • mysqli_stmt_get_result() — Получает результат из подготовленного запроса
  • mysqli_stmt_bind_param() — Привязка переменных к параметрам подготавливаемого запроса
  • mysqli_stmt_execute() — Выполняет подготовленный запрос
  • mysqli_stmt_fetch() — Связывает результаты подготовленного выражения с переменными
  • mysqli_prepare() — Подготавливает SQL выражение к выполнению
  • mysqli_stmt_prepare() — Подготовка SQL запроса к выполнению
  • mysqli_stmt_init() — Инициализирует запрос и возвращает объект для использования в mysqli_stmt_prepare
  • mysqli_stmt_errno() — Возвращает код ошибки выполнения последнего запроса
  • mysqli_stmt_error() — Возвращает строку с пояснением последней ошибки при выполнении запроса

Источник

Читайте также:  Java lang math android
Оцените статью