mirror of
https://github.com/php/doc-ru.git
synced 2025-07-28 06:39:58 +00:00

git-svn-id: https://svn.php.net/repository/phpdoc/ru/trunk@324257 c90b9560-bf6c-de11-be94-00142212c4b1
191 lines
6.8 KiB
XML
191 lines
6.8 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
||
<!-- EN-Revision: 4cb4824d5044a9bfefaf2b5932b60df25892e23e Maintainer: shein Status: ready -->
|
||
<!-- Reviewed: no -->
|
||
<!-- $Revision$ -->
|
||
<refentry xml:id="function.mysql-query" xmlns="http://docbook.org/ns/docbook">
|
||
<refnamediv>
|
||
<refname>mysql_query</refname>
|
||
<refpurpose>Посылает запрос MySQL</refpurpose>
|
||
</refnamediv>
|
||
|
||
<refsect1 role="description">
|
||
&reftitle.description;
|
||
<methodsynopsis>
|
||
<type>resource</type><methodname>mysql_query</methodname>
|
||
<methodparam><type>string</type><parameter>query</parameter></methodparam>
|
||
<methodparam choice="opt"><type>resource</type><parameter>link_identifier</parameter><initializer>NULL</initializer></methodparam>
|
||
</methodsynopsis>
|
||
<para>
|
||
<function>mysql_query</function> посылает один запрос
|
||
(посылка нескольких запросов не поддерживается) активной базе
|
||
данных сервера, на который ссылается переданный дескриптор
|
||
<parameter>link_identifier</parameter>.
|
||
</para>
|
||
</refsect1>
|
||
|
||
<refsect1 role="parameters">
|
||
&reftitle.parameters;
|
||
<para>
|
||
<variablelist>
|
||
<varlistentry>
|
||
<term><parameter>query</parameter></term>
|
||
<listitem>
|
||
<para>
|
||
SQL-запрос
|
||
</para>
|
||
<para>
|
||
Запрос не должен заканчиваться точкой с запятой.
|
||
Данные в запросе должны быть <link
|
||
linkend="function.mysql-real-escape-string">корректно проэкранированы</link>.
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
&mysql.linkid.description;
|
||
</variablelist>
|
||
</para>
|
||
</refsect1>
|
||
|
||
<refsect1 role="returnvalues">
|
||
&reftitle.returnvalues;
|
||
<para>
|
||
Для запросов SELECT, SHOW, DESCRIBE, EXPLAIN и других запросов,
|
||
возвращающих результат из нескольких рядов,
|
||
<function>mysql_query</function> возвращает дескриптор результата
|
||
запроса (<type>resource</type>), или &false; в случае ошибки.
|
||
</para>
|
||
<para>
|
||
Для других типов SQL-запросов, INSERT, UPDATE, DELETE, DROP и других,
|
||
<function>mysql_query</function> возвращает &true; в случае успеха
|
||
и &false; в случае ошибки.
|
||
</para>
|
||
<para>
|
||
Полученный дескриптор результата нужно передать в функцию
|
||
<function>mysql_fetch_assoc</function> или любую другую функцию,
|
||
работающую с результатами запросов.
|
||
</para>
|
||
<para>
|
||
Используйте <function>mysql_num_rows</function> для выяснения
|
||
количества рядов в результате SELECT-запроса или
|
||
<function>mysql_affected_rows</function> для выяснения количества
|
||
обработанных рядов запросами DELETE, INSERT, REPLACE и UPDATE.
|
||
</para>
|
||
<para>
|
||
<function>mysql_query</function> также завершится с ошибкой и
|
||
вернет &false;, если у пользователя нет доступа к какой-либо из
|
||
таблиц, фигурирующих в запросе.
|
||
</para>
|
||
</refsect1>
|
||
|
||
<refsect1 role="examples">
|
||
&reftitle.examples;
|
||
<para>
|
||
<example>
|
||
<title>Неверный запрос</title>
|
||
<para>
|
||
Следующий запрос составлен неправильно и
|
||
<function>mysql_query</function> вернёт &false;.
|
||
</para>
|
||
<programlisting role="php">
|
||
<![CDATA[
|
||
<?php
|
||
$result = mysql_query('SELECT * WHERE 1 = 1');
|
||
if (!$result) {
|
||
die('Неверный запрос: ' . mysql_error());
|
||
}
|
||
|
||
?>
|
||
]]>
|
||
</programlisting>
|
||
</example>
|
||
</para>
|
||
<para>
|
||
<example>
|
||
<title>Верный запрос</title>
|
||
<para>
|
||
Следующий запрос верен, поэтому <function>mysql_query</function>
|
||
вернет <type>resource</type>.
|
||
</para>
|
||
<programlisting role="php">
|
||
<![CDATA[
|
||
<?php
|
||
// Эти данные, к примеру, могли быть получены от пользователя
|
||
$firstname = 'fred';
|
||
$lastname = 'fox';
|
||
|
||
// Формируем запрос
|
||
// Это лучший способ выполнить SQL-запрос
|
||
// Еще примеры можно найти в документации mysql_real_escape_string()
|
||
$query = sprintf("SELECT firstname, lastname, address, age FROM friends
|
||
WHERE firstname='%s' AND lastname='%s'",
|
||
mysql_real_escape_string($firstname),
|
||
mysql_real_escape_string($lastname));
|
||
|
||
// Выполняем запрос
|
||
$result = mysql_query($query);
|
||
|
||
// Проверяем результат
|
||
// Это показывает реальный запрос, посланный к MySQL, а также ошибку. Удобно при отладке.
|
||
if (!$result) {
|
||
$message = 'Неверный запрос: ' . mysql_error() . "\n";
|
||
$message .= 'Запрос целиком: ' . $query;
|
||
die($message);
|
||
}
|
||
|
||
// Используем результат
|
||
// Попытка напечатать $result не выведет информацию, которая в нем хранится
|
||
// Необходимо использовать какую-либо mysql-функцию, работающую с результатом запроса
|
||
// См. также mysql_result(), mysql_fetch_array(), mysql_fetch_row() и т.п.
|
||
while ($row = mysql_fetch_assoc($result)) {
|
||
echo $row['firstname'];
|
||
echo $row['lastname'];
|
||
echo $row['address'];
|
||
echo $row['age'];
|
||
}
|
||
|
||
// Освобождаем ресурсы, ассоциированные с результатом
|
||
// Это делается автоматически в конце скрипта
|
||
mysql_free_result($result);
|
||
?>
|
||
]]>
|
||
</programlisting>
|
||
</example>
|
||
</para>
|
||
</refsect1>
|
||
|
||
<refsect1 role="seealso">
|
||
&reftitle.seealso;
|
||
<para>
|
||
<simplelist>
|
||
<member><function>mysql_connect</function></member>
|
||
<member><function>mysql_error</function></member>
|
||
<member><function>mysql_real_escape_string</function></member>
|
||
<member><function>mysql_result</function></member>
|
||
<member><function>mysql_fetch_assoc</function></member>
|
||
<member><function>mysql_unbuffered_query</function></member>
|
||
</simplelist>
|
||
</para>
|
||
</refsect1>
|
||
|
||
</refentry>
|
||
|
||
<!-- 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
|
||
-->
|