PHP.mk документација

Извршување на изрази

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

mysqli.quickstart.statements.php PHP.net прокси Преводот се освежува
Оригинал на PHP.net
Патека mysqli.quickstart.statements.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + превод во позадина Кодовите, табелите и белешките остануваат читливи во истиот тек.
Извршување на изрази

Референца за `mysqli.quickstart.statements.php` со подобрена типографија и навигација.

mysqli.quickstart.statements.php

Извршување на изрази

Statements can be executed with the mysqli::__construct(), Множествата резултати вратени од складирана процедура се преземаат со користење на and - Проверете дали има повеќе резултати од прашање од повеќекратно прашањеќе треба да се прилагоди, и mysqli::__construct() Изјавите можат да се извршат со mysqli::__construct() е идентично со повикување Множествата резултати вратени од складирана процедура се преземаат со користење на следено од функцијата е најчеста и комбинира извршна изјава со баферирано преземање на нејзиниот сет на резултати, ако постои, во еден повик. Повикување.

mysqli::store_result()

<?php

mysqli_report
(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("example.com", "user", "password", "database");

$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT)");

Пример #1 Извршување на прашања

Баферирани множества на резултати mysqli::__construct() По извршувањето на изјавата, резултатите можат или да се преземат одеднаш или да се читаат ред по ред од серверот. Баферирањето на множествата на резултати од страна на клиентот му овозможува на серверот да ги ослободи ресурсите поврзани со резултатите од изјавата што е можно порано. Генерално, клиентите се бавни во консумирањето на множествата на резултати. Затоа, се препорачува користење на баферирани множества на резултати.

ги комбинира извршувањето на изјавата и баферирањето на множествата на резултати.

PHP апликациите можат слободно да се движат низ баферирани резултати. Навигацијата е брза бидејќи множествата на резултати се чуваат во меморијата на клиентот. Ве молиме, имајте предвид дека често е полесно да се скалира преку клиентот отколку да се скалира серверот.

<?php

mysqli_report
(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("example.com", "user", "password", "database");

$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT)");
$mysqli->query("INSERT INTO test(id) VALUES (1), (2), (3)");

$result = $mysqli->query("SELECT id FROM test ORDER BY id ASC");

echo
"Reverse order...\n";
for (
$row_no = $result->num_rows - 1; $row_no >= 0; $row_no--) {
$result->data_seek($row_no);
$row = $result->fetch_assoc();
echo
" id = " . $row['id'] . "\n";
}

echo
"Result set order...\n";
foreach (
$result as $row) {
echo
" id = " . $row['id'] . "\n";
}

Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред

Reverse order...
 id = 3
 id = 2
 id = 1
Result set order...
 id = 1
 id = 2
 id = 3

Пример #2 Навигација низ баферирани резултати

Небаферирани множества на резултати

Ако меморијата на клиентот е ограничен ресурс и ослободувањето на серверските ресурси што е можно порано за да се одржи ниско оптоварување на серверот не е потребно, можат да се користат небаферирани резултати. Скролањето низ небаферирани резултати не е можно пред да се прочитаат сите редови.

<?php

$mysqli
->real_query("SELECT id FROM test ORDER BY id ASC");
$result = $mysqli->use_result();

echo
"Result set order...\n";
foreach (
$result as $row) {
echo
" id = " . $row['id'] . "\n";
}

Пример #3 Помалку кружни патувања користејќи multi-INSERT SQL

На mysqli::__construct(), Множествата резултати вратени од складирана процедура се преземаат со користење на and - Проверете дали има повеќе резултати од прашање од повеќекратно прашање Пример #3 Навигација низ небаферирани резултати COM_QUERY функциите се користат за извршување на неподготвени изјави. На ниво на протоколот MySQL Client Server, командата

и текстуалниот протокол се користат за извршување на изјави. Со текстуалниот протокол, MySQL серверот ги претвора сите податоци од множествата на резултати во низи пред да ги испрати. Оваа конверзија се врши без оглед на типот на податоците на колоната од резултатот на SQL. MySQL клиентските библиотеки ги примаат сите вредности на колоните како низи. Нема дополнително претворање од страна на клиентот за да се вратат колоните во нивните оригинални типови. Наместо тоа, сите вредности се обезбедени како PHP низи.

<?php

mysqli_report
(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("example.com", "user", "password", "database");

$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT, label CHAR(1))");
$mysqli->query("INSERT INTO test(id, label) VALUES (1, 'a')");

$result = $mysqli->query("SELECT id, label FROM test WHERE id = 1");
$row = $result->fetch_assoc();

printf("id = %s (%s)\n", $row['id'], gettype($row['id']));
printf("label = %s (%s)\n", $row['label'], gettype($row['label']));

Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред

id = 1 (string)
label = a (string)

Пример #4 Текстуалниот протокол враќа низи по дифолт MYSQLI_OPT_INT_AND_FLOAT_NATIVE Можно е да се претворат цели броеви и децимални колони назад во PHP броеви со поставување на

опција за поврзување, ако се користи mysqlnd библиотека. Ако е поставено, mysqlnd библиотеката ќе ги провери типовите на метаподатоците на резултатот и ќе ги претвори нумеричките SQL колони во PHP броеви, ако опсегот на вредностите на PHP типот на податоци го дозволува тоа. На овој начин, на пример, SQL INT колоните се враќаат како цели броеви.

<?php

mysqli_report
(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

$mysqli = new mysqli();
$mysqli->options(MYSQLI_OPT_INT_AND_FLOAT_NATIVE, 1);
$mysqli->real_connect("example.com", "user", "password", "database");

$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT, label CHAR(1))");
$mysqli->query("INSERT INTO test(id, label) VALUES (1, 'a')");

$result = $mysqli->query("SELECT id, label FROM test WHERE id = 1");
$row = $result->fetch_assoc();

printf("id = %s (%s)\n", $row['id'], gettype($row['id']));
printf("label = %s (%s)\n", $row['label'], gettype($row['label']));

Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред

id = 1 (integer)
label = a (string)

Види исто така

Белешки од корисници

Нема белешки од корисници за оваа страница.
На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.