문제

아래와 같이 두 개의 데이터베이스 회전을 설정했습니다

$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());

이 오류를 준다 :

**

'eventos'에 대한 사용자 'wordpress'@'localhost'에 거부 된 명령 선택

**

도움이 되었습니까?

해결책 2

해결되었습니다.

그 이유를 묻지 말고 처음 두 개의 행에서 순서를 변경하려고 시도했는데, 즉 $ con2를 $ con2 전에 넣고 이제 쿼리는 단순히 잘 작동합니다.

"True"매개 변수가 그와 관련이 있다고 생각합니다.

thx 얘들 아.

다른 팁

오류에서 EventOS 테이블의 WordPress 사용자에 대한 권한을 확인해야합니다. 귀하의 코드가 정확한 것 같습니다.

이를 확인하려면 두 번째 연결을 사용하여 "Eventos에서 * 선택 *"을 시도해보십시오. 스크립트의 첫 번째 쿼리로이를 수행하십시오.

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 개선 확장) 오래된 MySQL 물건 대신 (문제를 해결하는지 모르겠지만 다른 문제를 해결할 수있는 다른 문제를 해결합니다).

그 이유는 연결이 여전히 메모리에 있기 때문에 두 번째 쿼리를 실행하려고 할 때 마지막 연결을 사용합니다. Joomla 두 데이터베이스 사용 문제와 비슷한 문제가 있습니다. 이 문제에 대한 수정 사항을 찾고 있습니다. 코드에서 누락 된 규칙이라고 생각합니다.


야!!! 나는 그것을 얻는다. 문제는 당신이 두 번째 연결을 만들 때, 기본 PHP가 마지막 참조에 대해 동일한 참조를 반환한다는 것입니다. 따라서 새 연결이 필요한 경우 $ new_link를 사용하여 MySQL_Connect를 준비해야합니다.

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

마지막 매개 변수는 마지막 참조가 아니라 새로운 참조가 필요하다는 것을 의미합니다. 자세한 정보를 찾을 수 있습니다.

여기 그리고 여기

도움이되기를 바랍니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top