svn: /phpdoc/ru/trunk/reference/mysqli/ examples.xml
[email protected] (Sergey Panteleev) Sun, 27 Dec 2020 21:24:15 +0000
| Newsgroups | php.doc.ru |
|---|---|
| Message-ID | <[email protected]> |
sergey Sun, 27 Dec 2020 21:24:15 +0000
Revision: http://svn.php.net/viewvc?view=revision&revision=352223
Log:
docs(ru): Removed outdated files
Changed paths:
D phpdoc/ru/trunk/reference/mysqli/examples.xml
Deleted: phpdoc/ru/trunk/reference/mysqli/examples.xml
===================================================================
--- phpdoc/ru/trunk/reference/mysqli/examples.xml 2020-12-27 21:22:23 UTC (rev 352222)
+++ phpdoc/ru/trunk/reference/mysqli/examples.xml 2020-12-27 21:24:15 UTC (rev 352223)
@@ -1,141 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- EN-Revision: 342988 Maintainer: rjhdby Status: ready -->
-<!-- Reviewed: yes -->
-<!-- $Revision$ -->
-
-<chapter xml:id="mysqli.examples" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
- &reftitle.examples;
- <section xml:id="mysqli.examples-basic">
- <title>Базовые примеры расширения MySQLi</title>
- <para>
- Этот пример показывает как соединяться, выполнять запрос, использовать базовую
- обработку ошибок, распечатывать результирующую выборку и отключаться от базы данных MySQL.
- </para>
- <para>
- В этом примере используется свободно доступная база данных Sakila которая может
- быть загружена с <link xlink:href="&url.mysql.sakila;">dev.mysql.com,
- как описано здесь</link>. Для того, чтобы этот пример работал (a) установите sakila
- и (b) измените переменные для соединения с БД (host, your_user, your_pass).
- </para>
- <example>
- <title>Обзорный пример работы с расширением MySQLi</title>
- <programlisting role="php">
-<![CDATA[
-<?php
-// Давайте начнем с переменной $_GET в нашем примере.
-// Она содержит идентификатор aid для поля actor_id в БД Sakila.
-// Пусть ее значение по умолчанию будет 1
-// и тип этой переменной будет строго целочисленным во избежание SQL-инъекции
-// и/или связанных с этим проблем безопасности. Контроль всего перечисленного выше
- // лежит за пределами этого простого примера.
-// Пример:
-// http://example.org/script.php?aid=42
-if (isset($_GET['aid']) && is_numeric($_GET['aid'])) {
- $aid = (int) $_GET['aid'];
-} else {
- $aid = 1;
-}
-
-// Подключаемся к базе MySQL и выбираем базу под названием sakila
-// Хост: 127.0.0.1, имя пользователя: your_user, пароль: your_pass, база: sakila
-$mysqli = new mysqli('127.0.0.1', 'your_user', 'your_pass', 'sakila');
-
-// О нет!! переменная connect_errno существует, а это значит, что соединение не было успешным!
-if ($mysqli->connect_errno) {
- // Соединение не удалось. Что нужно делать в этом случае?
- // Можно отправить письмо администратору, отразить ошибку в журнале,
- // информировать пользователя об ошибке на экране и т.п.
- // Вам не нужно при этом раскрывать конфиденциальную информацию, поэтому
- // просто попробуем так:
- echo "Извините, возникла проблема на сайте";
-
- // На реальном сайте этого делать не следует, но в качестве примера мы покажем
- // как распечатывать информацию о подробностях возникшей ошибки MySQL
- echo "Ошибка: Не удалась создать соединение с базой MySQL и вот почему: \n";
- echo "Номер ошибки: " . $mysqli->connect_errno . "\n";
- echo "Ошибка: " . $mysqli->connect_error . "\n";
-
- // Вы можете захотеть показать что-то еще, но мы просто выйдем
- exit;
-}
-
-// Выполняем запрос SQL
-$sql = "SELECT actor_id, first_name, last_name FROM actor WHERE actor_id = $aid";
-if (!$result = $mysqli->query($sql)) {
- // О нет! запрос не удался.
- echo "Извините, возникла проблема в работе сайта.";
-
- // И снова: не делайте этого на реальном сайте, но в этом примере мы покажем,
- // как получить информацию об ошибке:
- echo "Ошибка: Наш запрос не удался и вот почему: \n";
- echo "Запрос: " . $sql . "\n";
- echo "Номер ошибки: " . $mysqli->errno . "\n";
- echo "Ошибка: " . $mysqli->error . "\n";
- exit;
-}
-
-// Уфф, мы это сделали. У нас есть соединение с базой данных и успешный запрос.
-// Но где же его результат?
-if ($result->num_rows === 0) {
- // Упс! в запросе нет ни одной строки! Иногда это ожидаемо и нормально, иногда нет.
- // Решать вам. В данном случае, может быть actor_id был слишком большим?
- echo "Мы не смогли найти совпадение для $aid, простите. Пожалуйста, попробуйте еще раз.";
- exit;
-}
-
-// Теперь мы знаем только, что результат выполнения запроса существует, поэтому давайте
-// перенесем его в ассоциативный массив, в котором ключами массива будут названия
- // столбцов.
-$actor = $result->fetch_assoc();
-echo "Иногда я вижу " . $actor['first_name'] . " " . $actor['last_name'] . " по телевизору.";
-
-// Теперь давайте выгрузим пять случайных актеров и выведем их имена в список.
-// Здесь мы добавим меньше степеней обработки ошибок, чтобы вы сделали это самостоятельно
-$sql = "SELECT actor_id, first_name, last_name FROM actor ORDER BY rand() LIMIT 5";
-if (!$result = $mysqli->query($sql)) {
- echo "Извините, возникла проблема в работе сайта.";
- exit;
-}
-
-// Распечатываем список из пяти случайно выбранных актеров и создаем ссылку на id
-// каждого из них
-echo "<ul>\n";
-while ($actor = $result->fetch_assoc()) {
- echo "<li><a href='" . $_SERVER['SCRIPT_FILENAME'] . "?aid=" . $actor['actor_id'] . "'>\n";
- echo $actor['first_name'] . ' ' . $actor['last_name'];
- echo "</a></li>\n";
-}
-echo "</ul>\n";
-
-// Скрипт автоматически закрывает соединение MySQL и освобождает память, тем не
-// менее давайте сделаем это вручную
-$result->free();
-$mysqli->close();
-?>
-]]>
- </programlisting>
- </example>
- </section>
-</chapter>
-
-<!-- Keep this comment at the end of the file
-Local variables:
-mode: sgml
-sgml-omittag:t
-sgml-shorttag:t
-sgml-minimize-attributes:nil
-sgml-always-quote-attributes:t
-sgml-indent-step:1
-sgml-indent-data:t
-indent-tabs-mode:nil
-sgml-parent-document:nil
-sgml-default-dtd-file:"~/.phpdoc/manual.ced"
-sgml-exposed-tags:nil
-sgml-local-catalogs:nil
-sgml-local-ecat-files:nil
-End:
-vim600: syn=xml fen fdm=syntax fdl=2 si
-vim: et tw=78 syn=sgml
-vi: ts=1 sw=1
--->
-