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; Пример использования <methodname>mysqli_stmt::bind_param</methodname> &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; Пример использования <literal>...</literal> для предоставления аргументов Оператор ... может использоваться для предоставления списка аргументов переменной длины, например в конструкции 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