Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > результат запроса


Автор: artsb 27.9.2008, 17:26
Приветик.

Суть в следующем:
Я выполняю запрос, получаю результат в переменную. Если я после этого подключусь к другой БД результат хранящийся в переменной будет потерян? Другими словами, связана ли эта переменная с БД?
Спасибо.

Автор: Canarat 27.9.2008, 17:47
artsb, нет. Это не ссылка, обычное значение переменной, в общем случае равносильное простому присвоению в коде программы.

Автор: artsb 27.9.2008, 18:02
Canarat, спасибо. Я, в принципе, так и думал. Просто, когда я пытался вывести содержимое переменной тупо echo($result); Выводилась строка, что-то типа: Bla-bla #id3

Автор: Canarat 27.9.2008, 18:24
artsb, эмм...вобще-то не Bla-bla, а Result, а во-вторых вот именно это - указатель. Я думал значение УЖЕ извлечено из указателя, одной из функций типа mysql_fetch_Assoc и.т.д.

Автор: bars80080 27.9.2008, 18:45
Цитата(artsb @  27.9.2008,  18:02 Найти цитируемый пост)
Bla-bla #id3 
 smile 

чего только не пишут

Код

$sql = 'select * from ...';
$r = mysql_query($sql);

echo $r; // получим result #id3 - ссылка на результат в БД

// но мы его ещё не извлекли оттуда. это только ссылка

$a = mysql_fetch_array($r);

$a - массив, в котором содержатся значения ячеек одной строчки из результата запроса
не самой таблицы, а именно результата запроса.
вот если здесь переподключиться, то без указания прежнего подключения в $r результат будет потерян,
а перенная $a  - сохранит массив

Автор: artsb 27.9.2008, 19:05
bars80080, сенкс. Про mysql_fetch_array, mysql_fetch_assoc и т.п. я знаю. Меня интересовало как раз то, не потеряется ли результат запроса. Теперь понятно. Спасибо всем.

Bla-bla я написал, потому что сразу не вспомнил что там было написано. Помню, что что-то было, а что - не помню. smile

Автор: skyboy 27.9.2008, 21:47
мне кажется, что после получения этого самого бла-бла в переменную, данные уже буферизированы(если использовать не mysql_unbuffered_query) и сохранены локально. потому от подключения к БД данные после выполнения mysql_query уже не зависят.

Автор: sTa1kEr 28.9.2008, 03:23
skyboy, на самом деле это справедливое замечание, хотя на практике я не проверял как он будет себя вести.

artsb, советую задаться вопросом для чего нужны методы http://dev.mysql.com/doc/refman/5.1/en/apis-php-class.mysqli.html#apis-php-mysqli.use-result и http://dev.mysql.com/doc/refman/5.1/en/apis-php-class.mysqli.html#apis-php-mysqli.store-result, если, конечно, вы используете расширение mysqli. Даже если нет, все равно советую прочитать документацию по ним, можно получить много познавательной информации о работе MySQL.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)