Files
php-doc-ru/reference/mysql/functions/mysql-query.xml
Max Chaban 6be1179512 Updated translation.
git-svn-id: https://svn.php.net/repository/phpdoc/ru/trunk@324257 c90b9560-bf6c-de11-be94-00142212c4b1
2012-03-14 21:50:29 +00:00

191 lines
6.8 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?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
-->