Spec-Zone .ru
спецификации, руководства, описания, API
|
Copyright 1997-2012 PHP Documentation Group.
Представляет готовый оператор.
mysqli_stmt {
mysqli_stmtPropertiesint mysqli_stmt->affected_rows ;
int mysqli_stmt->errno ;
array mysqli_stmt->error_list ;
string mysqli_stmt->error ;
int mysqli_stmt->field_count ;
int mysqli_stmt->insert_id ;
int mysqli_stmt->num_rows ;
int mysqli_stmt->param_count ;
string mysqli_stmt->sqlstate ;
Methodsint mysqli_stmt::attr_get(int attr);
bool mysqli_stmt::attr_set(int attr,
int mode);bool mysqli_stmt::bind_param(string types,
mixed var1,
mixed ...);bool mysqli_stmt::bind_result(mixed var1,
mixed ...);bool mysqli_stmt::close();
void mysqli_stmt::data_seek(int offset);
bool mysqli_stmt::execute();
bool mysqli_stmt::fetch();
void mysqli_stmt::free_result();
mysqli_result mysqli_stmt::get_result();
object mysqli_stmt::get_warnings(mysqli_stmt stmt);
mixed mysqli_stmt::prepare(string query);
bool mysqli_stmt::reset();
mysqli_result mysqli_stmt::result_metadata();
bool mysqli_stmt::send_long_data(int param_nr,
string data);bool mysqli_stmt::store_result();
}
Copyright 1997-2012 PHP Documentation Group.
mysqli_stmt::$affected_rows
mysqli_stmt_affected_rows
Возвращает общее количество строк, измененных, удаленных, или вставленный последним выполняемым оператором
Описание
Объектно-ориентированный стиль
int mysqli_stmt->affected_rows ;
Процедурный стиль
int mysqli_stmt_affected_rows(mysqli_stmt stmt);
Возвращает число строк, на которые влияют INSERT
, UPDATE
, или DELETE
запрос.
Эта функция только работает с запросами, которые обновляют таблицу. Чтобы получить число строк от Запроса
Select, использовать mysqli_stmt_num_rows
вместо этого.
Параметры
stmt
Процедурный стиль только: идентификатор оператора, возвращенный mysqli_stmt_init
.
Возвращаемые значения
Целое число, больше чем нуль, указывает на число строк, на которые влияют или полученный. Нуль указывает, что никакие записи где обновлено для ОБНОВЛЕНИЯ/ОПЕРАТОРА УДАЛЕНИЯ, никакие строки, соответствующие, ГДЕ пункт в запросе или что никакой запрос еще не был выполнен.-1 указывает, что запрос возвратил ошибку. НУЛЬ указывает, что несостоятельный довод был предоставлен функции.
Если число строк, на которые влияют, будет больше чем максимальное международное значение PHP, то число строк, на которые влияют, будет возвращено как строковое значение.
Примеры
Пример 21.149. Объектно-ориентированный стиль
<?php$mysqli = new mysqli("localhost", "my_user", "my_password", "world");/* check connection */if (mysqli_connect_errno()) { printf("Connect failed: %s\n", mysqli_connect_error()); exit();}/* create temp table */$mysqli->query("CREATE TEMPORARY TABLE myCountry LIKE Country");$query = "INSERT INTO myCountry SELECT * FROM Country WHERE Code LIKE ?";/* prepare statement */if ($stmt = $mysqli->prepare($query)) { /* Bind variable for placeholder */ $code = 'A%'; $stmt->bind_param("s", $code); /* execute statement */ $stmt->execute(); printf("rows inserted: %d\n", $stmt->affected_rows); /* close statement */ $stmt->close();}/* close connection */$mysqli->close();?>
Пример 21.150. Процедурный стиль
<?php$link = mysqli_connect("localhost", "my_user", "my_password", "world");/* check connection */if (mysqli_connect_errno()) { printf("Connect failed: %s\n", mysqli_connect_error()); exit();}/* create temp table */mysqli_query($link, "CREATE TEMPORARY TABLE myCountry LIKE Country");$query = "INSERT INTO myCountry SELECT * FROM Country WHERE Code LIKE ?";/* prepare statement */if ($stmt = mysqli_prepare($link, $query)) { /* Bind variable for placeholder */ $code = 'A%'; mysqli_stmt_bind_param($stmt, "s", $code); /* execute statement */ mysqli_stmt_execute($stmt); printf("rows inserted: %d\n", mysqli_stmt_affected_rows($stmt)); /* close statement */ mysqli_stmt_close($stmt);}/* close connection */mysqli_close($link);?>
Вышеупомянутые примеры выведут:
rows inserted: 17
См. Также
mysqli_stmt_num_rows
|
mysqli_prepare
|
Copyright 1997-2012 PHP Documentation Group.
mysqli_stmt::attr_get
mysqli_stmt_attr_get
Используемый, чтобы получить текущую стоимость атрибута оператора
Описание
Объектно-ориентированный стиль
int mysqli_stmt::attr_get(int attr);
Процедурный стиль
int mysqli_stmt_attr_get(mysqli_stmt stmt,
int attr);
Получает текущую стоимость атрибута оператора.
Параметры
stmt
Процедурный стиль только: идентификатор оператора, возвращенный mysqli_stmt_init
.
attr
Атрибут, который Вы хотите получить.
Возвращаемые значения
Возвраты FALSE
если атрибут не находится, иначе возвращает значение атрибута.
Copyright 1997-2012 PHP Documentation Group.
mysqli_stmt::attr_set
mysqli_stmt_attr_set
Используемый, чтобы изменить поведение готового оператора
Описание
Объектно-ориентированный стиль
bool mysqli_stmt::attr_set(int attr,
int mode);
Процедурный стиль
bool mysqli_stmt_attr_set(mysqli_stmt stmt,
int attr,
int mode);
Используемый, чтобы изменить поведение готового оператора. Эта функция может быть вызвана многократно, чтобы установить несколько атрибутов.
Параметры
stmt
Процедурный стиль только: идентификатор оператора, возвращенный mysqli_stmt_init
.
attr
Атрибут, который Вы хотите установить. У этого может быть одно из следующих значений:
Таблица 21.52. Значения атрибута
Символ | Описание |
---|---|
MYSQLI_STMT_ATTR_UPDATE_MAX_LENGTH | Если установлено в 1, причины mysqli_stmt_store_result обновить метаданные
MYSQL_FIELD->max_length значение.
|
MYSQLI_STMT_ATTR_CURSOR_TYPE | Тип курсора, чтобы открыться для оператора, когда mysqli_stmt_execute вызывается. mode может быть MYSQLI_CURSOR_TYPE_NO_CURSOR
(значение по умолчанию) или MYSQLI_CURSOR_TYPE_READ_ONLY .
|
MYSQLI_STMT_ATTR_PREFETCH_ROWS | Число строк, чтобы выбрать от сервера в то время, когда использование курсора.
mode может быть в диапазоне от 1 до
максимального значения unsignedlong. Значение по умолчанию 1.
|
Если Вы используете MYSQLI_STMT_ATTR_CURSOR_TYPE
опция с MYSQLI_CURSOR_TYPE_READ_ONLY
, курсор открывается для оператора, когда
Вы вызываете mysqli_stmt_execute
. Если уже есть открытый курсор от
предыдущего mysqli_stmt_execute
вызовите, это закрывает курсор прежде,
чем открыть новый. mysqli_stmt_reset
также завершения любой открытый курсор
прежде, чем подготовить оператор к повторному выполнению. mysqli_stmt_free_result
завершения любой открытый курсор.
Если Вы открываете курсор для готового оператора, mysqli_stmt_store_result
является ненужным.
mode
Значение, чтобы присвоиться к атрибуту.
Copyright 1997-2012 PHP Documentation Group.
mysqli_stmt::bind_param
mysqli_stmt_bind_param
Связывает переменные с готовым оператором как параметры
Описание
Объектно-ориентированный стиль
bool mysqli_stmt::bind_param(string types,
mixed var1,
mixed ...);
Процедурный стиль
bool mysqli_stmt_bind_param(mysqli_stmt stmt,
string types,
mixed var1,
mixed ...);
Свяжите переменные для маркеров параметра в 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
Параметры
stmt
Процедурный стиль только: идентификатор оператора, возвращенный mysqli_stmt_init
.
types
Строка, которая содержит один или более символов, которые определяют типы для соответствия, связывает переменные:
var1
Число переменных и длина строки types
должен
соответствовать параметры в операторе.
Возвращаемые значения
Возвраты TRUE
на успехе или FALSE
при отказе.
Примеры
Пример 21.151. Объектно-ориентированный стиль
<?php$mysqli = new mysqli('localhost', 'my_user', 'my_password', 'world');/* check connection */if (mysqli_connect_errno()) { printf("Connect failed: %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;/* execute prepared statement */$stmt->execute();printf("%d Row inserted.\n", $stmt->affected_rows);/* close statement and connection */$stmt->close();/* Clean up table CountryLanguage */$mysqli->query("DELETE FROM CountryLanguage WHERE Language='Bavarian'");printf("%d Row deleted.\n", $mysqli->affected_rows);/* close connection */$mysqli->close();?>
Пример 21.152. Процедурный стиль
<?php$link = mysqli_connect('localhost', 'my_user', 'my_password', 'world');/* check connection */if (!$link) { printf("Connect failed: %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;/* execute prepared statement */mysqli_stmt_execute($stmt);printf("%d Row inserted.\n", mysqli_stmt_affected_rows($stmt));/* close statement and connection */mysqli_stmt_close($stmt);/* Clean up table CountryLanguage */mysqli_query($link, "DELETE FROM CountryLanguage WHERE Language='Bavarian'");printf("%d Row deleted.\n", mysqli_affected_rows($link));/* close connection */mysqli_close($link);?>
Вышеупомянутые примеры выведут:
1 Row inserted.1 Row deleted.
См. Также
mysqli_stmt_bind_result
|
mysqli_stmt_execute
|
mysqli_stmt_fetch
|
mysqli_prepare
|
mysqli_stmt_send_long_data |
mysqli_stmt_errno
|
mysqli_stmt_error
|
Copyright 1997-2012 PHP Documentation Group.
mysqli_stmt::bind_result
mysqli_stmt_bind_result
Связывает переменные с готовым оператором для хранения результата
Описание
Объектно-ориентированный стиль
bool mysqli_stmt::bind_result(mixed var1,
mixed ...);
Процедурный стиль
bool mysqli_stmt_bind_result(mysqli_stmt stmt,
mixed var1,
mixed ...);
Связывает столбцы в наборе результатов к переменным.
Когда mysqli_stmt_fetch
вызывается, чтобы выбрать данные, протокол клиента/сервера MySQL помещает данные для связанных столбцов в
указанные переменные var1, ...
.
Отметьте, что все столбцы должны быть связаны после mysqli_stmt_execute
и до вызова mysqli_stmt_fetch
. В зависимости от типов столбца связанные переменные
могут тихо измениться на соответствующий тип PHP.
Столбец может быть связан или восстановление в любое время, даже после того, как набор
результатов был частично получен. Новая привязка вступает в силу в следующий раз mysqli_stmt_fetch
вызывается.
Параметры
stmt
Процедурный стиль только: идентификатор оператора, возвращенный mysqli_stmt_init
.
var1
Переменная, которая будет связана.
Возвращаемые значения
Возвраты TRUE
на успехе или FALSE
при отказе.
Примеры
Пример 21.153. Объектно-ориентированный стиль
<?php$mysqli = new mysqli("localhost", "my_user", "my_password", "world");if (mysqli_connect_errno()) { printf("Connect failed: %s\n", mysqli_connect_error()); exit();}/* prepare statement */if ($stmt = $mysqli->prepare("SELECT Code, Name FROM Country ORDER BY Name LIMIT 5")) { $stmt->execute(); /* bind variables to prepared statement */ $stmt->bind_result($col1, $col2); /* fetch values */ while ($stmt->fetch()) { printf("%s %s\n", $col1, $col2); } /* close statement */ $stmt->close();}/* close connection */$mysqli->close();?>
Пример 21.154. Процедурный стиль
<?php$link = mysqli_connect("localhost", "my_user", "my_password", "world");/* check connection */if (!$link) { printf("Connect failed: %s\n", mysqli_connect_error()); exit();}/* prepare statement */if ($stmt = mysqli_prepare($link, "SELECT Code, Name FROM Country ORDER BY Name LIMIT 5")) { mysqli_stmt_execute($stmt); /* bind variables to prepared statement */ mysqli_stmt_bind_result($stmt, $col1, $col2); /* fetch values */ while (mysqli_stmt_fetch($stmt)) { printf("%s %s\n", $col1, $col2); } /* close statement */ mysqli_stmt_close($stmt);}/* close connection */mysqli_close($link);?>
Вышеупомянутые примеры выведут:
AFG AfghanistanALB AlbaniaDZA AlgeriaASM American SamoaAND Andorra
См. Также
mysqli_stmt_bind_param
|
mysqli_stmt_execute
|
mysqli_stmt_fetch
|
mysqli_prepare
|
mysqli_stmt_prepare
|
mysqli_stmt_init |
mysqli_stmt_errno
|
mysqli_stmt_error
|
Copyright 1997-2012 PHP Documentation Group.
mysqli_stmt::close
mysqli_stmt_close
Закрывает готовый оператор
Описание
Объектно-ориентированный стиль
bool mysqli_stmt::close();
Процедурный стиль
bool mysqli_stmt_close(mysqli_stmt stmt);
Закрывает готовый оператор. mysqli_stmt_close
также освобождает дескриптор оператора. Если у текущего
оператора есть ожидание или непрочитанные результаты, эта функция отменяет их так, чтобы следующий запрос
мог быть выполнен.
Параметры
stmt
Процедурный стиль только: идентификатор оператора, возвращенный mysqli_stmt_init
.
Возвращаемые значения
Возвраты TRUE
на успехе или FALSE
при отказе.
См. Также
mysqli_prepare
|
Copyright 1997-2012 PHP Documentation Group.
mysqli_stmt::data_seek
mysqli_stmt_data_seek
Ищет на произвольную строку в наборе результатов оператора
Описание
Объектно-ориентированный стиль
void mysqli_stmt::data_seek(int offset);
Процедурный стиль
void mysqli_stmt_data_seek(mysqli_stmt stmt,
int offset);
Ищет на произвольный указатель результата в наборе результатов оператора.
mysqli_stmt_store_result
до нужно вызвать mysqli_stmt_data_seek
.
Параметры
stmt
Процедурный стиль только: идентификатор оператора, возвращенный mysqli_stmt_init
.
offset
Должен быть между нулем и общим количеством строк минус один (0.. mysqli_stmt_num_rows
- 1).
Возвращаемые значения
Никакое значение не возвращается.
Примеры
Пример 21.155. Объектно-ориентированный стиль
<?php/* Open a connection */$mysqli = new mysqli("localhost", "my_user", "my_password", "world");/* check connection */if (mysqli_connect_errno()) { printf("Connect failed: %s\n", mysqli_connect_error()); exit();}$query = "SELECT Name, CountryCode FROM City ORDER BY Name";if ($stmt = $mysqli->prepare($query)) { /* execute query */ $stmt->execute(); /* bind result variables */ $stmt->bind_result($name, $code); /* store result */ $stmt->store_result(); /* seek to row no. 400 */ $stmt->data_seek(399); /* fetch values */ $stmt->fetch(); printf ("City: %s Countrycode: %s\n", $name, $code); /* close statement */ $stmt->close();}/* close connection */$mysqli->close();?>
Пример 21.156. Процедурный стиль
<?php/* Open a connection */$link = mysqli_connect("localhost", "my_user", "my_password", "world");/* check connection */if (mysqli_connect_errno()) { printf("Connect failed: %s\n", mysqli_connect_error()); exit();}$query = "SELECT Name, CountryCode FROM City ORDER BY Name";if ($stmt = mysqli_prepare($link, $query)) { /* execute query */ mysqli_stmt_execute($stmt); /* bind result variables */ mysqli_stmt_bind_result($stmt, $name, $code); /* store result */ mysqli_stmt_store_result($stmt); /* seek to row no. 400 */ mysqli_stmt_data_seek($stmt, 399); /* fetch values */ mysqli_stmt_fetch($stmt); printf ("City: %s Countrycode: %s\n", $name, $code); /* close statement */ mysqli_stmt_close($stmt);}/* close connection */mysqli_close($link);?>
Вышеупомянутые примеры выведут:
City: Benin City Countrycode: NGA
См. Также
mysqli_prepare
|
Copyright 1997-2012 PHP Documentation Group.
mysqli_stmt::$errno
mysqli_stmt_errno
Возвращает код ошибки для нового вызова оператора
Описание
Объектно-ориентированный стиль
int mysqli_stmt->errno ;
Процедурный стиль
int mysqli_stmt_errno(mysqli_stmt stmt);
Возвращает код ошибки для последний раз вызванной функции оператора, которая может успешно выполниться или перестать работать.
Клиентские числа сообщения об ошибке перечисляются в MySQL errmsg.h
заголовочный файл, числа сообщения об ошибке сервера перечисляются в mysqld_error.h
. В исходном распределении MySQL можно найти полный список
сообщений об ошибках и кодов ошибки в файле Docs/mysqld_error.txt
.
Параметры
stmt
Процедурный стиль только: идентификатор оператора, возвращенный mysqli_stmt_init
.
Возвращаемые значения
Значение кода ошибки. Нуль означает, что никакая ошибка не произошла.
Примеры
Пример 21.157. Объектно-ориентированный стиль
<?php/* Open a connection */$mysqli = new mysqli("localhost", "my_user", "my_password", "world");/* check connection */if (mysqli_connect_errno()) { printf("Connect failed: %s\n", mysqli_connect_error()); exit();}$mysqli->query("CREATE TABLE myCountry LIKE Country");$mysqli->query("INSERT INTO myCountry SELECT * FROM Country");$query = "SELECT Name, Code FROM myCountry ORDER BY Name";if ($stmt = $mysqli->prepare($query)) { /* drop table */ $mysqli->query("DROP TABLE myCountry"); /* execute query */ $stmt->execute(); printf("Error: %d.\n", $stmt->errno); /* close statement */ $stmt->close();}/* close connection */$mysqli->close();?>
Пример 21.158. Процедурный стиль
<?php/* Open a connection */$link = mysqli_connect("localhost", "my_user", "my_password", "world");/* check connection */if (mysqli_connect_errno()) { printf("Connect failed: %s\n", mysqli_connect_error()); exit();}mysqli_query($link, "CREATE TABLE myCountry LIKE Country");mysqli_query($link, "INSERT INTO myCountry SELECT * FROM Country");$query = "SELECT Name, Code FROM myCountry ORDER BY Name";if ($stmt = mysqli_prepare($link, $query)) { /* drop table */ mysqli_query($link, "DROP TABLE myCountry"); /* execute query */ mysqli_stmt_execute($stmt); printf("Error: %d.\n", mysqli_stmt_errno($stmt)); /* close statement */ mysqli_stmt_close($stmt);}/* close connection */mysqli_close($link);?>
Вышеупомянутые примеры выведут:
Error: 1146.
См. Также
mysqli_stmt_error
|
mysqli_stmt_sqlstate
|
Copyright 1997-2012 PHP Documentation Group.
mysqli_stmt::$error_list
mysqli_stmt_error_list
Возвращает список ошибок от последнего выполняемого оператора
Описание
Объектно-ориентированный стиль
array mysqli_stmt->error_list ;
Процедурный стиль
array mysqli_stmt_error_list(mysqli_stmt stmt);
Возвращает массив ошибок для последний раз вызванной функции оператора, которая может успешно выполниться или перестать работать.
Параметры
stmt
Процедурный стиль только: идентификатор оператора, возвращенный mysqli_stmt_init
.
Возвращаемые значения
Список ошибок, каждый как ассоциативный массив, содержащий errno, ошибку, и sqlstate.
Примеры
Пример 21.159. Объектно-ориентированный стиль
<?php/* Open a connection */$mysqli = new mysqli("localhost", "my_user", "my_password", "world");/* check connection */if (mysqli_connect_errno()) { printf("Connect failed: %s\n", mysqli_connect_error()); exit();}$mysqli->query("CREATE TABLE myCountry LIKE Country");$mysqli->query("INSERT INTO myCountry SELECT * FROM Country");$query = "SELECT Name, Code FROM myCountry ORDER BY Name";if ($stmt = $mysqli->prepare($query)) { /* drop table */ $mysqli->query("DROP TABLE myCountry"); /* execute query */ $stmt->execute(); echo "Error:\n"; print_r($stmt->error_list); /* close statement */ $stmt->close();}/* close connection */$mysqli->close();?>
Пример 21.160. Процедурный стиль
<?php/* Open a connection */$link = mysqli_connect("localhost", "my_user", "my_password", "world");/* check connection */if (mysqli_connect_errno()) { printf("Connect failed: %s\n", mysqli_connect_error()); exit();}mysqli_query($link, "CREATE TABLE myCountry LIKE Country");mysqli_query($link, "INSERT INTO myCountry SELECT * FROM Country");$query = "SELECT Name, Code FROM myCountry ORDER BY Name";if ($stmt = mysqli_prepare($link, $query)) { /* drop table */ mysqli_query($link, "DROP TABLE myCountry"); /* execute query */ mysqli_stmt_execute($stmt); echo "Error:\n"; print_r(mysql_stmt_error_list($stmt)); /* close statement */ mysqli_stmt_close($stmt);}/* close connection */mysqli_close($link);?>
Вышеупомянутые примеры выведут:
Array( [0] => Array ( [errno] => 1146 [sqlstate] => 42S02 [error] => Table 'world.myCountry' doesn't exist ))
См. Также
mysqli_stmt_error
|
mysqli_stmt_errno
|
mysqli_stmt_sqlstate
|
Copyright 1997-2012 PHP Documentation Group.
mysqli_stmt::$error
mysqli_stmt_error
Возвращает строковое описание для последней ошибки оператора
Описание
Объектно-ориентированный стиль
string mysqli_stmt->error ;
Процедурный стиль
string mysqli_stmt_error(mysqli_stmt stmt);
Возвраты содержание сообщения об ошибке для последний раз вызванной функции оператора, которая может успешно выполниться или перестать работать.
Параметры
stmt
Процедурный стиль только: идентификатор оператора, возвращенный mysqli_stmt_init
.
Возвращаемые значения
Строка, которая описывает ошибку. Пустая строка, если никакая ошибка не произошла.
Примеры
Пример 21.161. Объектно-ориентированный стиль
<?php/* Open a connection */$mysqli = new mysqli("localhost", "my_user", "my_password", "world");/* check connection */if (mysqli_connect_errno()) { printf("Connect failed: %s\n", mysqli_connect_error()); exit();}$mysqli->query("CREATE TABLE myCountry LIKE Country");$mysqli->query("INSERT INTO myCountry SELECT * FROM Country");$query = "SELECT Name, Code FROM myCountry ORDER BY Name";if ($stmt = $mysqli->prepare($query)) { /* drop table */ $mysqli->query("DROP TABLE myCountry"); /* execute query */ $stmt->execute(); printf("Error: %s.\n", $stmt->error); /* close statement */ $stmt->close();}/* close connection */$mysqli->close();?>
Пример 21.162. Процедурный стиль
<?php/* Open a connection */$link = mysqli_connect("localhost", "my_user", "my_password", "world");/* check connection */if (mysqli_connect_errno()) { printf("Connect failed: %s\n", mysqli_connect_error()); exit();}mysqli_query($link, "CREATE TABLE myCountry LIKE Country");mysqli_query($link, "INSERT INTO myCountry SELECT * FROM Country");$query = "SELECT Name, Code FROM myCountry ORDER BY Name";if ($stmt = mysqli_prepare($link, $query)) { /* drop table */ mysqli_query($link, "DROP TABLE myCountry"); /* execute query */ mysqli_stmt_execute($stmt); printf("Error: %s.\n", mysqli_stmt_error($stmt)); /* close statement */ mysqli_stmt_close($stmt);}/* close connection */mysqli_close($link);?>
Вышеупомянутые примеры выведут:
Error: Table 'world.myCountry' doesn't exist.
См. Также
mysqli_stmt_errno
|
mysqli_stmt_sqlstate
|
Copyright 1997-2012 PHP Documentation Group.
mysqli_stmt::execute
mysqli_stmt_execute
Выполняет готовый Запрос
Описание
Объектно-ориентированный стиль
bool mysqli_stmt::execute();
Процедурный стиль
bool mysqli_stmt_execute(mysqli_stmt stmt);
Выполняет запрос, который был ранее подготовлен, используя mysqli_prepare
функция. Когда выполняющийся любые маркеры параметра, которые
существуют, будут автоматически заменены соответствующими данными.
Если оператор UPDATE
, DELETE
, или INSERT
, общее количество строк, на которые влияют, может быть определено при
использовании mysqli_stmt_affected_rows
функция. Аналогично, если запрос приводит к
набору результатов mysqli_stmt_fetch
функция используется.
При использовании mysqli_stmt_execute
, mysqli_stmt_fetch
функция должна использоваться, чтобы выбрать данные до
выполнения любых дополнительных запросов.
Параметры
stmt
Процедурный стиль только: идентификатор оператора, возвращенный mysqli_stmt_init
.
Возвращаемые значения
Возвраты TRUE
на успехе или FALSE
при отказе.
Примеры
Пример 21.163. Объектно-ориентированный стиль
<?php$mysqli = new mysqli("localhost", "my_user", "my_password", "world");/* check connection */if (mysqli_connect_errno()) { printf("Connect failed: %s\n", mysqli_connect_error()); exit();}$mysqli->query("CREATE TABLE myCity LIKE City");/* Prepare an insert statement */$query = "INSERT INTO myCity (Name, CountryCode, District) VALUES (?,?,?)";$stmt = $mysqli->prepare($query);$stmt->bind_param("sss", $val1, $val2, $val3);$val1 = 'Stuttgart';$val2 = 'DEU';$val3 = 'Baden-Wuerttemberg';/* Execute the statement */$stmt->execute();$val1 = 'Bordeaux';$val2 = 'FRA';$val3 = 'Aquitaine';/* Execute the statement */$stmt->execute();/* close statement */$stmt->close();/* retrieve all rows from myCity */$query = "SELECT Name, CountryCode, District FROM myCity";if ($result = $mysqli->query($query)) { while ($row = $result->fetch_row()) { printf("%s (%s,%s)\n", $row[0], $row[1], $row[2]); } /* free result set */ $result->close();}/* remove table */$mysqli->query("DROP TABLE myCity");/* close connection */$mysqli->close();?>
Пример 21.164. Процедурный стиль
<?php$link = mysqli_connect("localhost", "my_user", "my_password", "world");/* check connection */if (mysqli_connect_errno()) { printf("Connect failed: %s\n", mysqli_connect_error()); exit();}mysqli_query($link, "CREATE TABLE myCity LIKE City");/* Prepare an insert statement */$query = "INSERT INTO myCity (Name, CountryCode, District) VALUES (?,?,?)";$stmt = mysqli_prepare($link, $query);mysqli_stmt_bind_param($stmt, "sss", $val1, $val2, $val3);$val1 = 'Stuttgart';$val2 = 'DEU';$val3 = 'Baden-Wuerttemberg';/* Execute the statement */mysqli_stmt_execute($stmt);$val1 = 'Bordeaux';$val2 = 'FRA';$val3 = 'Aquitaine';/* Execute the statement */mysqli_stmt_execute($stmt);/* close statement */mysqli_stmt_close($stmt);/* retrieve all rows from myCity */$query = "SELECT Name, CountryCode, District FROM myCity";if ($result = mysqli_query($link, $query)) { while ($row = mysqli_fetch_row($result)) { printf("%s (%s,%s)\n", $row[0], $row[1], $row[2]); } /* free result set */ mysqli_free_result($result);}/* remove table */mysqli_query($link, "DROP TABLE myCity");/* close connection */mysqli_close($link);?>
Вышеупомянутые примеры выведут:
Stuttgart (DEU,Baden-Wuerttemberg)Bordeaux (FRA,Aquitaine)
См. Также
mysqli_prepare
|
mysqli_stmt_bind_param
|
Copyright 1997-2012 PHP Documentation Group.
mysqli_stmt::fetch
mysqli_stmt_fetch
Выборка следует из готового оператора в связанные переменные
Описание
Объектно-ориентированный стиль
bool mysqli_stmt::fetch();
Процедурный стиль
bool mysqli_stmt_fetch(mysqli_stmt stmt);
Выберите следствие готового оператора в переменные, связанные mysqli_stmt_bind_result
.
Отметьте, что все столбцы должны быть связаны приложением перед вызовом mysqli_stmt_fetch
.
Данные передаются небуферизованные без вызова mysqli_stmt_store_result
который может уменьшить производительность (но
уменьшает стоимость памяти).
Параметры
stmt
Процедурный стиль только: идентификатор оператора, возвращенный mysqli_stmt_init
.
Возвращаемые значения
Таблица 21.54. Возвращаемые значения
Значение | Описание |
---|---|
TRUE |
Успех. Данные были выбраны |
FALSE |
Ошибка произошла |
NULL |
Больше строк/данных не существует, или усечение данных произошло |
Примеры
Пример 21.165. Объектно-ориентированный стиль
<?php$mysqli = new mysqli("localhost", "my_user", "my_password", "world");/* check connection */if (mysqli_connect_errno()) { printf("Connect failed: %s\n", mysqli_connect_error()); exit();}$query = "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 150,5";if ($stmt = $mysqli->prepare($query)) { /* execute statement */ $stmt->execute(); /* bind result variables */ $stmt->bind_result($name, $code); /* fetch values */ while ($stmt->fetch()) { printf ("%s (%s)\n", $name, $code); } /* close statement */ $stmt->close();}/* close connection */$mysqli->close();?>
Пример 21.166. Процедурный стиль
<?php$link = mysqli_connect("localhost", "my_user", "my_password", "world");/* check connection */if (mysqli_connect_errno()) { printf("Connect failed: %s\n", mysqli_connect_error()); exit();}$query = "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 150,5";if ($stmt = mysqli_prepare($link, $query)) { /* execute statement */ mysqli_stmt_execute($stmt); /* bind result variables */ mysqli_stmt_bind_result($stmt, $name, $code); /* fetch values */ while (mysqli_stmt_fetch($stmt)) { printf ("%s (%s)\n", $name, $code); } /* close statement */ mysqli_stmt_close($stmt);}/* close connection */mysqli_close($link);?>
Вышеупомянутые примеры выведут:
Rockford (USA)Tallahassee (USA)Salinas (USA)Santa Clarita (USA)Springfield (USA)
См. Также
mysqli_prepare
|
mysqli_stmt_errno
|
mysqli_stmt_error
|
mysqli_stmt_bind_result
|
Copyright 1997-2012 PHP Documentation Group.
mysqli_stmt::$field_count
mysqli_stmt_field_count
Возвращает число поля в данном операторе
Описание
Объектно-ориентированный стиль
int mysqli_stmt->field_count ;
Процедурный стиль
int mysqli_stmt_field_count(mysqli_stmt stmt);
Эта функция iscurrently не задокументированный; только его список параметров доступен.
Copyright 1997-2012 PHP Documentation Group.
mysqli_stmt::free_result
mysqli_stmt_free_result
Освобождает сохраненную память результата для данного дескриптора оператора
Описание
Объектно-ориентированный стиль
void mysqli_stmt::free_result();
Процедурный стиль
void mysqli_stmt_free_result(mysqli_stmt stmt);
Освобождает память результата, связанную с оператором, который был выделен mysqli_stmt_store_result
.
Параметры
stmt
Процедурный стиль только: идентификатор оператора, возвращенный mysqli_stmt_init
.
Возвращаемые значения
Никакое значение не возвращается.
См. Также
mysqli_stmt_store_result
|
Copyright 1997-2012 PHP Documentation Group.
mysqli_stmt::get_result
mysqli_stmt_get_result
Получает набор результатов от готового оператора
Описание
Объектно-ориентированный стиль
mysqli_result mysqli_stmt::get_result();
Процедурный стиль
mysqli_result mysqli_stmt_get_result(mysqli_stmt stmt);
Вызовите, чтобы возвратить набор результатов из готового запроса оператора.
Параметры
stmt
Процедурный стиль только: идентификатор оператора, возвращенный mysqli_stmt_init
.
Возвращаемые значения
Возвращает набор результатов или FALSE
при отказе.
MySQL Native Driver Only
Доступный только с mysqlnd.
Примеры
Пример 21.167. Объектно-ориентированный стиль
<?php $mysqli = new mysqli("127.0.0.1", "user", "password", "world"); if($mysqli->connect_error){ die("$mysqli->connect_errno: $mysqli->connect_error");}$query = "SELECT Name, Population, Continent FROM Country WHERE Continent=? ORDER BY Name LIMIT 1";$stmt = $mysqli->stmt_init();if(!$stmt->prepare($query)){ print "Failed to prepare statement\n";}else{ $stmt->bind_param("s", $continent); $continent_array = array('Europe','Africa','Asia','North America'); foreach($continent_array as $continent) { $stmt->execute(); $result = $stmt->get_result(); while ($row = $result->fetch_array(MYSQLI_NUM)) { foreach ($row as $r) { print "$r "; } print "\n"; } }}$stmt->close();$mysqli->close();?>
Пример 21.168. Процедурный стиль
<?php $link = mysqli_connect("127.0.0.1", "user", "password", "world"); if (!$link){ $error = mysqli_connect_error(); $errno = mysqli_connect_errno(); print "$errno: $error\n"; exit();}$query = "SELECT Name, Population, Continent FROM Country WHERE Continent=? ORDER BY Name LIMIT 1";$stmt = mysqli_stmt_init($link);if(!mysqli_stmt_prepare($stmt, $query)){ print "Failed to prepare statement\n";}else{ mysqli_stmt_bind_param($stmt, "s", $continent); $continent_array = array('Europe','Africa','Asia','North America'); foreach($continent_array as $continent) { mysqli_stmt_execute($stmt); $result = mysqli_stmt_get_result($stmt); while ($row = mysqli_fetch_array($result, MYSQLI_NUM)) { foreach ($row as $r) { print "$r "; } print "\n"; } }}mysqli_stmt_close($stmt);mysqli_close($link);?>
Вышеупомянутые примеры выведут:
Albania 3401200 Europe Algeria 31471000 Africa Afghanistan 22720000 Asia Anguilla 8000 North America
См. Также
mysqli_prepare
|
mysqli_stmt_result_metadata |
mysqli_stmt_fetch
|
mysqli_fetch_array
|
mysqli_stmt_store_result
|
Copyright 1997-2012 PHP Documentation Group.
mysqli_stmt::get_warnings
mysqli_stmt_get_warnings
Получите результат ВЫСТАВОЧНЫХ ПРЕДУПРЕЖДЕНИЙ
Описание
Объектно-ориентированный стиль
object mysqli_stmt::get_warnings(mysqli_stmt stmt);
Процедурный стиль
object mysqli_stmt_get_warnings(mysqli_stmt stmt);
Эта функция iscurrently не задокументированный; только его список параметров доступен.
Copyright 1997-2012 PHP Documentation Group.
mysqli_stmt::$insert_id
mysqli_stmt_insert_id
Генерируйте ID от предыдущей работы ВСТАВКИ
Описание
Объектно-ориентированный стиль
int mysqli_stmt->insert_id ;
Процедурный стиль
mixed mysqli_stmt_insert_id(mysqli_stmt stmt);
Эта функция iscurrently не задокументированный; только его список параметров доступен.
Copyright 1997-2012 PHP Documentation Group.
mysqli_stmt::more_results
mysqli_stmt_more_results
Проверьте, есть ли больше запроса, следует из многократного запроса
Описание
Объектно-ориентированный стиль (метод):
public bool mysqli_stmt::more_results();
Процедурный стиль:
bool mysqli_stmt_more_results(mysql_stmt stmt);
Проверки, если есть больше запроса, следуют из многократного запроса.
Параметры
stmt
Процедурный стиль только: идентификатор оператора, возвращенный mysqli_stmt_init
.
Возвращаемые значения
Возвраты TRUE
если больше результатов существует, иначе FALSE
.
См. Также
mysqli_stmt::next_result
|
mysqli::multi_query
|
Copyright 1997-2012 PHP Documentation Group.
mysqli_stmt::next_result
mysqli_stmt_next_result
Читает следующее следствие многократного запроса
Описание
Объектно-ориентированный стиль (метод):
public bool mysqli_stmt::next_result();
Процедурный стиль:
bool mysqli_stmt_next_result(mysql_stmt stmt);
Читает следующее следствие многократного запроса.
Параметры
stmt
Процедурный стиль только: идентификатор оператора, возвращенный mysqli_stmt_init
.
Возвращаемые значения
Возвраты TRUE
на успехе или FALSE
при отказе.
Ошибки/Исключения
Испускает E_STRICT
ошибка уровня, если набор результатов не существует, и
предлагает использовать mysqli_stmt::more_results
в этих случаях, перед вызовом mysqli_stmt::next_result
.
См. Также
mysqli_stmt::more_results
|
mysqli::multi_query
|
Copyright 1997-2012 PHP Documentation Group.
mysqli_stmt::$num_rows
mysqli_stmt_num_rows
Возвратите число строк в наборе результатов операторов
Описание
Объектно-ориентированный стиль
int mysqli_stmt->num_rows ;
Процедурный стиль
int mysqli_stmt_num_rows(mysqli_stmt stmt);
Возвращает число строк в наборе результатов. Использование mysqli_stmt_num_rows
зависит от того, использовали ли Вы mysqli_stmt_store_result
буферизовать весь набор результатов в дескрипторе
оператора.
Если Вы используете mysqli_stmt_store_result
, mysqli_stmt_num_rows
может быть сразу вызван.
Параметры
stmt
Процедурный стиль только: идентификатор оператора, возвращенный mysqli_stmt_init
.
Возвращаемые значения
Целое число, представляющее число строк в наборе результатов.
Примеры
Пример 21.169. Объектно-ориентированный стиль
<?php/* Open a connection */$mysqli = new mysqli("localhost", "my_user", "my_password", "world");/* check connection */if (mysqli_connect_errno()) { printf("Connect failed: %s\n", mysqli_connect_error()); exit();}$query = "SELECT Name, CountryCode FROM City ORDER BY Name LIMIT 20";if ($stmt = $mysqli->prepare($query)) { /* execute query */ $stmt->execute(); /* store result */ $stmt->store_result(); printf("Number of rows: %d.\n", $stmt->num_rows); /* close statement */ $stmt->close();}/* close connection */$mysqli->close();?>
Пример 21.170. Процедурный стиль
<?php/* Open a connection */$link = mysqli_connect("localhost", "my_user", "my_password", "world");/* check connection */if (mysqli_connect_errno()) { printf("Connect failed: %s\n", mysqli_connect_error()); exit();}$query = "SELECT Name, CountryCode FROM City ORDER BY Name LIMIT 20";if ($stmt = mysqli_prepare($link, $query)) { /* execute query */ mysqli_stmt_execute($stmt); /* store result */ mysqli_stmt_store_result($stmt); printf("Number of rows: %d.\n", mysqli_stmt_num_rows($stmt)); /* close statement */ mysqli_stmt_close($stmt);}/* close connection */mysqli_close($link);?>
Вышеупомянутые примеры выведут:
Number of rows: 20.
См. Также
mysqli_stmt_affected_rows |
mysqli_prepare
|
mysqli_stmt_store_result
|
Copyright 1997-2012 PHP Documentation Group.
mysqli_stmt::$param_count
mysqli_stmt_param_count
Возвращает число параметра для данного оператора
Описание
Объектно-ориентированный стиль
int mysqli_stmt->param_count ;
Процедурный стиль
int mysqli_stmt_param_count(mysqli_stmt stmt);
Возвращает число маркеров параметра, существующих в готовом операторе.
Параметры
stmt
Процедурный стиль только: идентификатор оператора, возвращенный mysqli_stmt_init
.
Возвращаемые значения
Возвращает целое число, представляющее число параметров.
Примеры
Пример 21.171. Объектно-ориентированный стиль
<?php$mysqli = new mysqli("localhost", "my_user", "my_password", "world");/* check connection */if (mysqli_connect_errno()) { printf("Connect failed: %s\n", mysqli_connect_error()); exit();}if ($stmt = $mysqli->prepare("SELECT Name FROM Country WHERE Name=? OR Code=?")) { $marker = $stmt->param_count; printf("Statement has %d markers.\n", $marker); /* close statement */ $stmt->close();}/* close connection */$mysqli->close();?>
Пример 21.172. Процедурный стиль
<?php$link = mysqli_connect("localhost", "my_user", "my_password", "world");/* check connection */if (mysqli_connect_errno()) { printf("Connect failed: %s\n", mysqli_connect_error()); exit();}if ($stmt = mysqli_prepare($link, "SELECT Name FROM Country WHERE Name=? OR Code=?")) { $marker = mysqli_stmt_param_count($stmt); printf("Statement has %d markers.\n", $marker); /* close statement */ mysqli_stmt_close($stmt);}/* close connection */mysqli_close($link);?>
Вышеупомянутые примеры выведут:
Statement has 2 markers.
См. Также
mysqli_prepare
|
Copyright 1997-2012 PHP Documentation Group.
mysqli_stmt::prepare
mysqli_stmt_prepare
Подготовьте SQL-оператор к выполнению
Описание
Объектно-ориентированный стиль
mixed mysqli_stmt::prepare(string query);
Процедурный стиль
bool mysqli_stmt_prepare(mysqli_stmt stmt,
string query);
Готовит SQL-запрос, на который указывает завершенный нулем строковый запрос.
Маркеры параметра должны быть связаны с использованием переменных приложения mysqli_stmt_bind_param
и/или mysqli_stmt_bind_result
прежде, чем выполнить оператор или выбрать строки.
В случае, где Вы передаете оператор к mysqli_stmt_prepare
это более длинно чем max_allowed_packet
из сервера возвращенные коды ошибки отличаются в зависимости от того, используете ли Вы MySQL Native
Driver (mysqlnd
) или MySQL Client Library (libmysqlclient
).
Поведение следующие:
mysqlnd
на Linux возвращает код ошибки 1153.
Средства сообщения об ошибке "получили пакет, больше чем max_allowed_packet
байты".
mysqlnd
на Windows возвращает код ошибки 2006.
Этот сервер "средств сообщения об
ошибке ушел".
libmysqlclient
на всех платформах возвращает
код ошибки 2006. Этот сервер "средств
сообщения об ошибке ушел".
Параметры
stmt
Процедурный стиль только: идентификатор оператора, возвращенный mysqli_stmt_init
.
query
Запрос, как строка. Это должно состоять из единственного SQL-оператора.
Можно включать один или более маркеров параметра в SQL-оператор, встраивая вопросительный знак (?
) символы в соответствующих позициях.
Недопустимо добавить завершающуюся точку с запятой или \g
к оператору.
Маркеры являются законными только в определенных местах в SQL-операторах. Например, им позволяют в ЗНАЧЕНИЯХ () список оператора INSERT (чтобы определить значения столбцов для строки), или в сравнении со столбцом в ГДЕ пункт, чтобы определить сравнительное значение.
Однако, им не позволяют для идентификаторов (таких как имена таблиц или имена
столбцов) в списке выборки, который называет столбцы, которые будут возвращены оператором
SELECT), или определить оба операнда бинарного оператора такой как =
знак "равно". Последнее ограничение необходимо,
потому что было бы невозможно определить тип параметра. Вообще, параметры являются законными
только в Языке манипулирования данными (DML) операторы, а не в Языке определения данных
(DDL) операторы.
Возвращаемые значения
Возвраты TRUE
на успехе или FALSE
при отказе.
Примеры
Пример 21.173. Объектно-ориентированный стиль
<?php$mysqli = new mysqli("localhost", "my_user", "my_password", "world");/* check connection */if (mysqli_connect_errno()) { printf("Connect failed: %s\n", mysqli_connect_error()); exit();}$city = "Amersfoort";/* create a prepared statement */$stmt = $mysqli->stmt_init();if ($stmt->prepare("SELECT District FROM City WHERE Name=?")) { /* bind parameters for markers */ $stmt->bind_param("s", $city); /* execute query */ $stmt->execute(); /* bind result variables */ $stmt->bind_result($district); /* fetch value */ $stmt->fetch(); printf("%s is in district %s\n", $city, $district); /* close statement */ $stmt->close();}/* close connection */$mysqli->close();?>
Пример 21.174. Процедурный стиль
<?php$link = mysqli_connect("localhost", "my_user", "my_password", "world");/* check connection */if (mysqli_connect_errno()) { printf("Connect failed: %s\n", mysqli_connect_error()); exit();}$city = "Amersfoort";/* create a prepared statement */$stmt = mysqli_stmt_init($link);if (mysqli_stmt_prepare($stmt, 'SELECT District FROM City WHERE Name=?')) { /* bind parameters for markers */ mysqli_stmt_bind_param($stmt, "s", $city); /* execute query */ mysqli_stmt_execute($stmt); /* bind result variables */ mysqli_stmt_bind_result($stmt, $district); /* fetch value */ mysqli_stmt_fetch($stmt); printf("%s is in district %s\n", $city, $district); /* close statement */ mysqli_stmt_close($stmt);}/* close connection */mysqli_close($link);?>
Вышеупомянутые примеры выведут:
Amersfoort is in district Utrecht
См. Также
mysqli_stmt_init |
mysqli_stmt_execute
|
mysqli_stmt_fetch
|
mysqli_stmt_bind_param
|
mysqli_stmt_bind_result
|
mysqli_stmt_close
|
Copyright 1997-2012 PHP Documentation Group.
mysqli_stmt::reset
mysqli_stmt_reset
Сбрасывает готовый оператор
Описание
Объектно-ориентированный стиль
bool mysqli_stmt::reset();
Процедурный стиль
bool mysqli_stmt_reset(mysqli_stmt stmt);
Сбрасывает готовый оператор на клиенте и сервере, чтобы утвердить после того, как готовятся.
Это сбрасывает оператор на сервере, данные отправили использование mysqli_stmt_send_long_data
, небуферизованные наборы результатов и текущие
ошибки. Это не очищает привязку или сохраненные наборы результатов. Сохраненные наборы результатов будут
очищены, выполняя готовый оператор (или закрывая его).
Чтобы подготовить оператор с другим запросом используют функцию mysqli_stmt_prepare
.
Параметры
stmt
Процедурный стиль только: идентификатор оператора, возвращенный mysqli_stmt_init
.
Возвращаемые значения
Возвраты TRUE
на успехе или FALSE
при отказе.
См. Также
mysqli_prepare
|
Copyright 1997-2012 PHP Documentation Group.
mysqli_stmt::result_metadata
mysqli_stmt_result_metadata
Метаданные набора результатов возвратов от готового оператора
Описание
Объектно-ориентированный стиль
mysqli_result mysqli_stmt::result_metadata();
Процедурный стиль
mysqli_result mysqli_stmt_result_metadata(mysqli_stmt stmt);
Если оператор, к которому передают mysqli_prepare
тот, который производит набор результатов, mysqli_stmt_result_metadata
возвращает объект результата, который может
использоваться, чтобы обработать метаинформацию, такую как общее количество полей и отдельной информации о
поле.
Этот указатель набора результатов можно передать как параметр любой из основанных на поле функций, которые обрабатывают метаданные набора результатов, такие как:
Структура набора результатов должна быть освобождена, когда Вы делаетесь с нею, которую можно сделать,
передавая ее к mysqli_free_result
Набор результатов, возвращенный mysqli_stmt_result_metadata
содержит только метаданные. Это не содержит
результатов строки. Строки получаются при использовании дескриптора оператора с mysqli_stmt_fetch
.
Параметры
stmt
Процедурный стиль только: идентификатор оператора, возвращенный mysqli_stmt_init
.
Возвращаемые значения
Возвращает объект результата или FALSE
если ошибка произошла.
Примеры
Пример 21.175. Объектно-ориентированный стиль
<?php$mysqli = new mysqli("localhost", "my_user", "my_password", "test");$mysqli->query("DROP TABLE IF EXISTS friends");$mysqli->query("CREATE TABLE friends (id int, name varchar(20))");$mysqli->query("INSERT INTO friends VALUES (1,'Hartmut'), (2, 'Ulf')");$stmt = $mysqli->prepare("SELECT id, name FROM friends");$stmt->execute();/* get resultset for metadata */$result = $stmt->result_metadata();/* retrieve field information from metadata result set */$field = $result->fetch_field();printf("Fieldname: %s\n", $field->name);/* close resultset */$result->close();/* close connection */$mysqli->close();?>
Пример 21.176. Процедурный стиль
<?php$link = mysqli_connect("localhost", "my_user", "my_password", "test");mysqli_query($link, "DROP TABLE IF EXISTS friends");mysqli_query($link, "CREATE TABLE friends (id int, name varchar(20))");mysqli_query($link, "INSERT INTO friends VALUES (1,'Hartmut'), (2, 'Ulf')");$stmt = mysqli_prepare($link, "SELECT id, name FROM friends");mysqli_stmt_execute($stmt);/* get resultset for metadata */$result = mysqli_stmt_result_metadata($stmt);/* retrieve field information from metadata result set */$field = mysqli_fetch_field($result);printf("Fieldname: %s\n", $field->name);/* close resultset */mysqli_free_result($result);/* close connection */mysqli_close($link);?>
См. Также
mysqli_prepare
|
mysqli_free_result
|
Copyright 1997-2012 PHP Documentation Group.
mysqli_stmt::send_long_data
mysqli_stmt_send_long_data
Отправьте данные в блоках
Описание
Объектно-ориентированный стиль
bool mysqli_stmt::send_long_data(int param_nr,
string data);
Процедурный стиль
bool mysqli_stmt_send_long_data(mysqli_stmt stmt,
int param_nr,
string data);
Позволяет отправлять данные параметра серверу в частях (или блоки), например, если размер блоба превышает
размер max_allowed_packet
. Эта функция может быть вызвана многократно, чтобы
отправить части символа или значения двоичных данных для столбца, который должен быть одним из типов данных
BLOB или ТЕКСТА.
Параметры
stmt
Процедурный стиль только: идентификатор оператора, возвращенный mysqli_stmt_init
.
param_nr
Указывает который параметр связать данные с. Параметры нумеруются, начинаясь 0.
data
Строка, содержащая данные, которые будут отправлены.
Возвращаемые значения
Возвраты TRUE
на успехе или FALSE
при отказе.
Примеры
Пример 21.177. Объектно-ориентированный стиль
<?php$stmt = $mysqli->prepare("INSERT INTO messages (message) VALUES (?)");$null = NULL;$stmt->bind_param("b", $null);$fp = fopen("messages.txt", "r");while (!feof($fp)) { $stmt->send_long_data(0, fread($fp, 8192));}fclose($fp);$stmt->execute();?>
См. Также
mysqli_prepare
|
mysqli_stmt_bind_param
|
Copyright 1997-2012 PHP Documentation Group.
mysqli_stmt::$sqlstate
mysqli_stmt_sqlstate
Возвраты ошибка SQLSTATE от предыдущей работы оператора
Описание
Объектно-ориентированный стиль
string mysqli_stmt->sqlstate ;
Процедурный стиль
string mysqli_stmt_sqlstate(mysqli_stmt stmt);
Возвращает строку, содержащую код ошибки SQLSTATE для последний раз вызванной готовой функции оператора,
которая может успешно выполниться или перестать работать. Код ошибки состоит из пяти символов. '00000'
средства никакая ошибка. Значения определяются ANSI SQL и ODBC. Для
списка возможных значений см.
Параметры
stmt
Процедурный стиль только: идентификатор оператора, возвращенный mysqli_stmt_init
.
Возвращаемые значения
Возвращает строку, содержащую код ошибки SQLSTATE для последней ошибки. Код ошибки состоит из пяти символов.
'00000'
средства никакая ошибка.
Примечания
Отметьте, что не все ошибки MySQL все же отображаются на SQLSTATE's. Значение HY000
(общая ошибка), используется для неотображенных ошибок.
Примеры
Пример 21.178. Объектно-ориентированный стиль
<?php/* Open a connection */$mysqli = new mysqli("localhost", "my_user", "my_password", "world");/* check connection */if (mysqli_connect_errno()) { printf("Connect failed: %s\n", mysqli_connect_error()); exit();}$mysqli->query("CREATE TABLE myCountry LIKE Country");$mysqli->query("INSERT INTO myCountry SELECT * FROM Country");$query = "SELECT Name, Code FROM myCountry ORDER BY Name";if ($stmt = $mysqli->prepare($query)) { /* drop table */ $mysqli->query("DROP TABLE myCountry"); /* execute query */ $stmt->execute(); printf("Error: %s.\n", $stmt->sqlstate); /* close statement */ $stmt->close();}/* close connection */$mysqli->close();?>
Пример 21.179. Процедурный стиль
<?php/* Open a connection */$link = mysqli_connect("localhost", "my_user", "my_password", "world");/* check connection */if (mysqli_connect_errno()) { printf("Connect failed: %s\n", mysqli_connect_error()); exit();}mysqli_query($link, "CREATE TABLE myCountry LIKE Country");mysqli_query($link, "INSERT INTO myCountry SELECT * FROM Country");$query = "SELECT Name, Code FROM myCountry ORDER BY Name";if ($stmt = mysqli_prepare($link, $query)) { /* drop table */ mysqli_query($link, "DROP TABLE myCountry"); /* execute query */ mysqli_stmt_execute($stmt); printf("Error: %s.\n", mysqli_stmt_sqlstate($stmt)); /* close statement */ mysqli_stmt_close($stmt);}/* close connection */mysqli_close($link);?>
Вышеупомянутые примеры выведут:
Error: 42S02.
См. Также
mysqli_stmt_errno
|
mysqli_stmt_error
|
Copyright 1997-2012 PHP Documentation Group.
mysqli_stmt::store_result
mysqli_stmt_store_result
Передает набор результатов от готового оператора
Описание
Объектно-ориентированный стиль
bool mysqli_stmt::store_result();
Процедурный стиль
bool mysqli_stmt_store_result(mysqli_stmt stmt);
Следует вызвать mysqli_stmt_store_result
для каждого запроса, который успешно производит
набор результатов (SELECT, SHOW, DESCRIBE, EXPLAIN
), и только если Вы хотите
буферизовать полный набор результатов клиентом, так, чтобы последующее mysqli_stmt_fetch
вызовите возвраты буферизованные данные.
Является ненужным вызвать mysqli_stmt_store_result
для других запросов, но если Вы делаете, это не
будет вредить или вызывать известную производительность во всех случаях. Можно обнаружить ли запрос,
произведенный набор результатов, проверяя если mysqli_stmt_result_metadata
НУЛЬ возвратов.
Параметры
stmt
Процедурный стиль только: идентификатор оператора, возвращенный mysqli_stmt_init
.
Возвращаемые значения
Возвраты TRUE
на успехе или FALSE
при отказе.
Примеры
Пример 21.180. Объектно-ориентированный стиль
<?php/* Open a connection */$mysqli = new mysqli("localhost", "my_user", "my_password", "world");/* check connection */if (mysqli_connect_errno()) { printf("Connect failed: %s\n", mysqli_connect_error()); exit();}$query = "SELECT Name, CountryCode FROM City ORDER BY Name LIMIT 20";if ($stmt = $mysqli->prepare($query)) { /* execute query */ $stmt->execute(); /* store result */ $stmt->store_result(); printf("Number of rows: %d.\n", $stmt->num_rows); /* free result */ $stmt->free_result(); /* close statement */ $stmt->close();}/* close connection */$mysqli->close();?>
Пример 21.181. Процедурный стиль
<?php/* Open a connection */$link = mysqli_connect("localhost", "my_user", "my_password", "world");/* check connection */if (mysqli_connect_errno()) { printf("Connect failed: %s\n", mysqli_connect_error()); exit();}$query = "SELECT Name, CountryCode FROM City ORDER BY Name LIMIT 20";if ($stmt = mysqli_prepare($link, $query)) { /* execute query */ mysqli_stmt_execute($stmt); /* store result */ mysqli_stmt_store_result($stmt); printf("Number of rows: %d.\n", mysqli_stmt_num_rows($stmt)); /* free result */ mysqli_stmt_free_result($stmt); /* close statement */ mysqli_stmt_close($stmt);}/* close connection */mysqli_close($link);?>
Вышеупомянутые примеры выведут:
Number of rows: 20.
См. Также
mysqli_prepare
|
mysqli_stmt_result_metadata |
mysqli_stmt_fetch
|