mysqli_stmt::bind_param
mysqli_stmt_bind_param
Привязка переменных к параметрам подготавливаемого запроса
&reftitle.description;
&style.oop;
public boolmysqli_stmt::bind_param
stringtypes
mixedvar
mixedvars
&style.procedural;
boolmysqli_stmt_bind_param
mysqli_stmtstatement
stringtypes
mixedvar
mixedvars
Привязывает переменные к меткам параметров в SQL-выражении, которое было
подготовлено функцией mysqli_prepare или mysqli_stmt_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 принимает список параметров,
которые могут передаваться как по ссылке, так и по значению.
&reftitle.parameters;
&mysqli.stmt.description;
types
Строка, содержащая один или более символов, каждый из которых задаёт
тип значения привязываемой переменной:
Символы задающие тип
Символ
Описание
i
у соответствующей переменной тип int
d
у соответствующей переменной тип float
s
у соответствующей переменной тип string
b
соответствующая переменная является большим двоичным объектом
(blob) и будет пересылаться пакетами
var
vars
Количество переменных и длина строки types
должны в точности соответствовать количеству параметров в запросе.
&reftitle.returnvalues;
&return.success;
&reftitle.errors;
&mysqli.conditionalexception;
&reftitle.examples;
Пример использования mysqli_stmt::bind_param
&style.oop;
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);
/* Clean up table CountryLanguage */
$mysqli->query("DELETE FROM CountryLanguage WHERE Language='Bavarian'");
printf("строк удалено: %d.\n", $mysqli->affected_rows);
]]>
&style.procedural;
&examples.outputs;
Пример использования ... для предоставления аргументов
Оператор ... может использоваться для предоставления списка
аргументов переменной длины, например в конструкции WHERE IN.
prepare("SELECT Language FROM CountryLanguage WHERE CountryCode IN (?, ?)");
/* использование ... для предоставления аргументов */
$stmt->bind_param('ss', ...['DEU', 'POL']);
$stmt->execute();
$stmt->store_result();
printf("найдено строк: %d.\n", $stmt->num_rows());
]]>
&examples.outputs;
&reftitle.seealso;
mysqli_stmt_bind_result
mysqli_stmt_execute
mysqli_stmt_fetch
mysqli_prepare
mysqli_stmt_send_long_data
mysqli_stmt_errno
mysqli_stmt_error