<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Форум PHP-MyAdmin.RU &mdash; Вызов хранимой процедуры]]></title>
	<link rel="self" href="https://forum.php-myadmin.ru/extern.php?action=feed&amp;tid=2019&amp;type=atom" />
	<updated>2010-12-13T19:40:45Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.php-myadmin.ru/viewtopic.php?id=2019</id>
		<entry>
			<title type="html"><![CDATA[Re: Вызов хранимой процедуры]]></title>
			<link rel="alternate" href="https://forum.php-myadmin.ru/viewtopic.php?pid=14391#p14391" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Hanut сказал:</cite><blockquote><p>Процедуры не предназначены для выборки данных в виде строк, они передают и возвращают только несколько параметров.</p></blockquote></div><p>все понятно, значит никак не сделать нормально процедуру.</p>]]></content>
			<author>
				<name><![CDATA[KuPbI4]]></name>
				<uri>https://forum.php-myadmin.ru/profile.php?id=3264</uri>
			</author>
			<updated>2010-12-13T19:40:45Z</updated>
			<id>https://forum.php-myadmin.ru/viewtopic.php?pid=14391#p14391</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Вызов хранимой процедуры]]></title>
			<link rel="alternate" href="https://forum.php-myadmin.ru/viewtopic.php?pid=14381#p14381" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>KuPbI4 сказал:</cite><blockquote><p>что-то тут не так?</p></blockquote></div><p>Процедуры не предназначены для выборки данных в виде строк, они передают и возвращают только несколько параметров.</p>]]></content>
			<author>
				<name><![CDATA[Hanut]]></name>
				<uri>https://forum.php-myadmin.ru/profile.php?id=181</uri>
			</author>
			<updated>2010-12-13T17:37:48Z</updated>
			<id>https://forum.php-myadmin.ru/viewtopic.php?pid=14381#p14381</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Вызов хранимой процедуры]]></title>
			<link rel="alternate" href="https://forum.php-myadmin.ru/viewtopic.php?pid=14374#p14374" />
			<content type="html"><![CDATA[<p>А если<br /></p><div class="codebox"><pre><code>CREATE procedure `my_proc` ()
DECLARE @id_books int;
SELECT id_books, id_users, fname, lname, otch, namebook, status_book, date_book
FROM `status`
LEFT JOIN users ON id_users = id_user
LEFT JOIN books ON id_books = id_book</code></pre></div><p>то почему орет на ошибку <br /></p><div class="quotebox"><blockquote><p>#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near &#039;DECLARE @id_books int&#039; at line 2</p></blockquote></div><p>что-то тут не так?</p>]]></content>
			<author>
				<name><![CDATA[KuPbI4]]></name>
				<uri>https://forum.php-myadmin.ru/profile.php?id=3264</uri>
			</author>
			<updated>2010-12-13T11:34:51Z</updated>
			<id>https://forum.php-myadmin.ru/viewtopic.php?pid=14374#p14374</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Вызов хранимой процедуры]]></title>
			<link rel="alternate" href="https://forum.php-myadmin.ru/viewtopic.php?pid=14364#p14364" />
			<content type="html"><![CDATA[<p>Я упомянул о добавлении параметров в функциях, недостаточно только добавить (i) в именах функций.</p><p>mysqli_query($link, $query);<br />В данном случае переменная $link - это ссылка на соединение возвращенное функцией mysqli_connect().</p><p>Остальные функции смотрите по документации.</p>]]></content>
			<author>
				<name><![CDATA[Hanut]]></name>
				<uri>https://forum.php-myadmin.ru/profile.php?id=181</uri>
			</author>
			<updated>2010-12-12T20:39:37Z</updated>
			<id>https://forum.php-myadmin.ru/viewtopic.php?pid=14364#p14364</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Вызов хранимой процедуры]]></title>
			<link rel="alternate" href="https://forum.php-myadmin.ru/viewtopic.php?pid=14361#p14361" />
			<content type="html"><![CDATA[<p>Спасибо за объяснение, но не заработало.<br /></p><div class="codebox"><pre><code> $i=0;
    $query=&quot;select * from view_s&quot;;
    $result=mysqli_query($query);
    if(mysqli_error()) {
        echo mysqli_error();
    }
    else {
    while($row=mysqli_fetch_row($result))
        {
            $i++;
        } 
    }</code></pre></div><p>ошибки<br /></p><div class="quotebox"><blockquote><p>Warning: mysqli_query() expects at least 2 parameters, 1 given in Z:\home\biblioteka59.ru\www\catalog.php on line 151</p><p>Warning: mysqli_error() expects exactly 1 parameter, 0 given in Z:\home\biblioteka59.ru\www\catalog.php on line 152</p><p>Warning: mysqli_fetch_row() expects parameter 1 to be mysqli_result, null given in Z:\home\biblioteka59.ru\www\catalog.php on line 156</p></blockquote></div>]]></content>
			<author>
				<name><![CDATA[KuPbI4]]></name>
				<uri>https://forum.php-myadmin.ru/profile.php?id=3264</uri>
			</author>
			<updated>2010-12-12T19:41:58Z</updated>
			<id>https://forum.php-myadmin.ru/viewtopic.php?pid=14361#p14361</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Вызов хранимой процедуры]]></title>
			<link rel="alternate" href="https://forum.php-myadmin.ru/viewtopic.php?pid=14357#p14357" />
			<content type="html"><![CDATA[<p>Работа с вьюшками возможна только через расширение mysqli, только оно поддерживает функции MySQL 5.</p><p>Используемое расширение поменять достаточно просто, добавив букву (i) во всех используемых функциях работающих с MySQL.</p><p>Обратите внимание, что некоторые функции требуют дополнительные параметры.</p><p>Пример замены:<br />mysql_fetch_assoc() меняем на mysqli_fetch_assoc()</p><p><a href="http://lv.php.net/manual/en/mysqli.summary.php">Документация расширения MySQLi и список функций</a></p>]]></content>
			<author>
				<name><![CDATA[Hanut]]></name>
				<uri>https://forum.php-myadmin.ru/profile.php?id=181</uri>
			</author>
			<updated>2010-12-12T17:44:14Z</updated>
			<id>https://forum.php-myadmin.ru/viewtopic.php?pid=14357#p14357</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Вызов хранимой процедуры]]></title>
			<link rel="alternate" href="https://forum.php-myadmin.ru/viewtopic.php?pid=14355#p14355" />
			<content type="html"><![CDATA[<p>Прочитал Ваше объяснение, заработало!<br /></p><div class="codebox"><pre><code>CREATE VIEW `view_s` AS SELECT `status`.`id_books`, `status`.`id_users`, `users`.`fname`, `users`.`lname`, `users`.`otch`, `books`.`namebook`, `status`.`status_book`, `status`.`date_book`
FROM `status`
LEFT JOIN `users` ON `id_users` = `id_user`
LEFT JOIN `books` ON `id_books` = `id_book`</code></pre></div><p>далее вызвал вьюшку через пхпмайадмин<br /></p><div class="codebox"><pre><code>select * from view_s</code></pre></div><p>все работает и показывает то что нужно.<br />а как вызвать в php-скрипте вьюшку?!<br /></p><div class="codebox"><pre><code>    $i=0;
    $query=&quot;select * from view_s&quot;;
    $result=mysql_query($query);
    if(mysql_error()) {
        echo mysql_error();
    }
    else {
    while($row=mysql_fetch_row($result))
        {
            $i++;
        } 
    }</code></pre></div><p>ничего не выводит...</p>]]></content>
			<author>
				<name><![CDATA[KuPbI4]]></name>
				<uri>https://forum.php-myadmin.ru/profile.php?id=3264</uri>
			</author>
			<updated>2010-12-12T17:02:12Z</updated>
			<id>https://forum.php-myadmin.ru/viewtopic.php?pid=14355#p14355</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Вызов хранимой процедуры]]></title>
			<link rel="alternate" href="https://forum.php-myadmin.ru/viewtopic.php?pid=14350#p14350" />
			<content type="html"><![CDATA[<p>Судя по запросу, думаю лучше использовать вьюшку (VIEW), а не процедуру.</p><p>Сперва составьте работающий запрос из объединенных таблиц и затем из него сделайте вьюшку.</p><div class="codebox"><pre><code>CREATE VIEW `view_name` AS SELECT `id_books`...</code></pre></div><p>При объединении таблиц используйте префиксы их имен. То есть не просто id_books, а `status`.`id_books`</p><p>Вызвать вьюшку можно обычным запросом:<br /></p><div class="codebox"><pre><code>SELECT * FROM `view_name`;</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Hanut]]></name>
				<uri>https://forum.php-myadmin.ru/profile.php?id=181</uri>
			</author>
			<updated>2010-12-12T14:55:46Z</updated>
			<id>https://forum.php-myadmin.ru/viewtopic.php?pid=14350#p14350</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Вызов хранимой процедуры]]></title>
			<link rel="alternate" href="https://forum.php-myadmin.ru/viewtopic.php?pid=14345#p14345" />
			<content type="html"><![CDATA[<p>phpmyadmin - 3.2.3. mysql 5.0.5-dev<br />Создал хранимую процедуру: (именно через phpmyadmin)<br /></p><div class="codebox"><pre><code>CREATE procedure `my_proc` (
out id_books integer(11),
out id_users integer(11),
out fname varchar(50),
out lname varchar(50),
out otch varchar(50),
out namebook varchar(50),
out status_book integer(11),
out date_book varchar(50)
)
SELECT id_books, id_users, fname, lname, otch, namebook, status_book, date_book
FROM `status`
LEFT JOIN users ON id_users = id_user
LEFT JOIN books ON id_books = id_book</code></pre></div><p>Все прошло успешно.<br />Далее вызываю саму процедуру командой </p><div class="quotebox"><blockquote><p>call my_proc</p></blockquote></div><p>И пишет вот такую ошибку:<br /></p><div class="quotebox"><blockquote><p>Incorrect number of arguments for PROCEDURE bibl_system.proc; expected 8, got 0</p></blockquote></div><p>А если создать другой вариант:<br /></p><div class="codebox"><pre><code>CREATE procedure `my_proc` ()
SELECT id_books, id_users, fname, lname, otch, namebook, status_book, date_book
FROM `status`
LEFT JOIN users ON id_users = id_user
LEFT JOIN books ON id_books = id_book</code></pre></div><p>то потом вызываю процедуру </p><div class="quotebox"><blockquote><p>call my_proc</p></blockquote></div><p> пишет<br /></p><div class="quotebox"><blockquote><p>Thread stack overrun: 6436 bytes used of a 131072 byte stack, and 128000 bytes needed. Use &#039;mysqld -O thread_stack=#&#039; to specify a bigger stack.</p></blockquote></div><p>где ошибки и в каком месте исправить?!</p>]]></content>
			<author>
				<name><![CDATA[KuPbI4]]></name>
				<uri>https://forum.php-myadmin.ru/profile.php?id=3264</uri>
			</author>
			<updated>2010-12-12T09:41:29Z</updated>
			<id>https://forum.php-myadmin.ru/viewtopic.php?pid=14345#p14345</id>
		</entry>
</feed>
