Проблема с несколькими базами данных php

Я установил два раздела базы данных, как показано ниже.

$con1 = mysql_connect("localhost", "root", "pwd") or die (mysql_error()); $con2 = mysql_connect("localhost", "wordpress", "pwd", true) or die(mysql_error()); mysql_select_db("lab_ancp", $con1) or die(mysql_error()); mysql_select_db("wordpress",$con2) or die(mysql_error()); 

и он отлично работает

поэтому я делаю некоторые запросы на странице, например:

 $sql="select unome from associado where uid=$uid"; $result=mysql_query($sql,$con1) or die(mysql_error()); 

и он отлично работает, после чего я делаю второй запрос следующим образом:

 $sql="select ID, post_content, post_title, post_excerpt, meta_value from wp_posts join ( select post_id, meta_value from wp_postmeta join ( select post_id from wp_postmeta where meta_key='destaque' and meta_value='s' )as t1 using(post_id) where meta_key='pft_widescreen' ) as t2 on (wp_posts.ID=t2.post_id) ORDER BY RAND() LIMIT 1"; //echo $sql . "<br />"; $row=mysql_fetch_assoc(mysql_query($sql,$con2)) or die(mysql_error()); 

и снова все в порядке, но потом ….

 $sql="select * from eventos where edatade>='$hoje' or edataate>='$hoje'"; $result=mysql_query($sql, $con1) or die (mysql_error()); 

дает эту ошибку:

**

Команда SELECT запрещена для пользователя 'wordpress' @ 'localhost' для таблицы 'eventos'

**

срочная помощь нужна …

Solutions Collecting From Web of "Проблема с несколькими базами данных php"

Из ошибки кажется, что вы должны проверить разрешения для пользователя wordpress в таблице eventos. Ваш код кажется правильным.

Если вы хотите проверить это, попробуйте «SELECT * from eventos», используя второе соединение. Сделайте это как первый запрос в скрипте.

Что ж

Его решение.

Не спрашивайте причину, но я попытался изменить порядок в первых двух командах, то есть поставить $ con2 до $ con1, и теперь запросы просто отлично работают.

Я подозреваю, что … параметр «истина» имеет какое-то отношение к этому.

Thx ребята.

http://se2.php.net/manual/en/function.mysql-select-db.php#39095 http://se2.php.net/manual/en/function.mysql-select-db.php#93487

Кажется, проблема с mysql_select_db, вторая ссылка – одно решение.

Я бы рекомендовал использовать phps mysqli (MySQL Improved Extension) вместо старого mysql-материала (не знаю, решает ли он вашу проблему, но он решает другие проблемы, с которыми вы могли бы пойти).

Я подозреваю, что причина в том, что соединение все еще в памяти, поэтому, когда вы пытаетесь выполнить второй запрос, это использует последнее соединение. У меня аналогичная проблема с проблемой использования двух баз данных Joomla. Я ищу исправление для этой проблемы, я думаю, что это недостающее правило в нашем коде.


ПРИВЕТ!!! Я понимаю, проблема в том, что при создании второго соединения для PHP по умолчанию возвращается одна и та же ссылка для последней. Поэтому, если вам нужно новое соединение, вы должны подготовить mysql_connect с $ new_link к true, например

 $myconn = @mysql_connect($this->db2_host,$this->db2_user,$this->db2_pass, true); 

Последний параметр означает, что вам нужна новая ссылка, а не последняя. Вы можете найти дополнительную информацию:

ЗДЕСЬ И ЗДЕСЬ

Надеюсь, поможет.