Удаленный доступ к MySQL

Wicked

Новичок
ну в самом простом случае - получить все данные в массив, сделать serialize, echo, unserialize
 

KoSik

Новичок
Ты меня не понял. Естественно, полученный $result в удаленной программе я сериализирую, но при чем тут эхо? Мне далее надо этот $result вернуть обратно в мою программу, затем его "разсеарилизировать", чтобы произвести над ним кучу действий(которые будут уже производиться в программе, расположенной не там, где сервер mysql). А вот как его вернуть в исходную программу я не знаю. Меня интересуют именно действия, которые мне нужно произвести "между" сеарилизациями... и эти действия далеко не echo... :(
 

KoSik

Новичок
Чтобы не были непонятными мои вопросы, попробую привести немного кода....

Код основной программы:
PHP:
$fp = fsockopen("$host", 80); 
	if($fp) {	 
   		 fputs($fp, "POST $config[siteurl]/treemysqlconnect.php HTTP/1.0\nContent-Type: 
                              application/x-www-form-urlencoded\nContent-length: $content_length\n\n
                              function=remote_mysql_query&remote_query=$query");
        	          echo '<pre>'; 
   	 		while(!feof($fp)) echo fgets($fp); //Тут вывожу просто пока для наглядности.....
    	         echo '</pre>';
                  fclose($fp); 
	}
Код программы treemysqlconnect.php , расположенной вместе с сервером mysql:

PHP:
mysql_connect($config['mysql_host'],$config['mysql_user'],$config['mysql_password']) or die("Couldn't connect to DB");

mysql_query("SET NAMES cp1251;");
mysql_query("SET character_set_database=cp1251");
mysql_query("SET character_set_server=cp1251");
mysql_select_db($config['mysql_db']);

$_POST['function']();

function remote_mysql_query() {
	$result = mysql_query($_POST['remote_query']);
         serialize($result);
	...А вот тут как-то надо передать этот результат обратно в ту программу...
}
 

Wicked

Новичок
тебе еще раз повторить, чтобы ты пошел и попробовал?

-~{}~ 27.07.06 15:27:

т.е. ты не знаешь, как работают с результатом работы функции mysql_query() ?
 

KoSik

Новичок
нет, просто если не сложно, добавь в код то, чего не хватает.... когда я ставлю в функции remote_mysql_query() echo $result, то результат не передается обратно в программу вместе с HTTP-ответом :(

-~{}~ 27.07.06 12:30:

Да я знаю, как работать, только работать с ним мне нужно не в программе treemysqlconnect.php, а уже в основной программе, а для этого, этот результат в нее надо как-то вернуть....
 

Wicked

Новичок
[m]mysql_query[/m]

результатом функции mysql_query() является ресурс. А ресурс передать между скриптами нельзя принципиально. Поэтому, _необходимо_ из этого ресурса высосать все записи, и передавать уже их.
 

KoSik

Новичок
Хаха, только что понял, почему туплю... Wicked, спасибо.. просто я думал что эхо в удаленном файле просто выводит на экран, а оно как раз и записывает в HTTP - ответ...

-~{}~ 27.07.06 12:39:

Блин, а вот то, что передавать ресур нельзя, очень жаль :((

Просто в программе основной часто используются конструкции типа while($row=mysql_fetch_assoc($result)) {}... ладо, тогда наверное буду запоминать результат в массив.....

Кстати, еще.... после обращения в качестве ответа сервера я получаю:

PHP:
HTTP/1.1 200 OK
Date: Thu, 27 Jul 2006 08:38:40 GMT
Server: Apache/1.3.34 (Unix) Resin/2.1.11 PHP/4.4.2 mod_deflate/1.0.21 mod_ssl/2.8.25 OpenSSL/0.9.6b
X-Powered-By: PHP/4.4.2
Connection: close
Content-Type: text/html; charset=windows-1251


***[и только тут идет нужная мне инфа]***
Дальше мне надо просто парсить полученный ответ сервера? Или есть какой-нибудь более изящный способ?

-~{}~ 27.07.06 13:02:

Попробовал сделать вот так:

do {
$result = fgets($fp);
}
while(!feof($fp));

Получаю последнюю строчку ответа сервера, а она и является нужной для меня )
 
Сверху