0

以下のように2つのデータベース接続を設定しました

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

そしてそれはうまくいきます、その後私はこのような2番目のクエリを行います:

$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'に対してSELECTコマンドが拒否されました

****

4

4 に答える 4

0

エラーから、eventosテーブルでwordpressユーザーの権限を確認する必要があるようです。あなたのコードは正しいようです。

これを確認したい場合は、2番目の接続を使用して「SELECT*fromeventos」を試してください。スクリプトの最初のクエリとしてこれを実行します。

于 2009-11-12T23:30:19.707 に答える
0

上手

その解決しました。

理由を聞かないでください。ただし、最初の2行の順序を変更しようとしました。つまり、$con1の前に$con2を配置すると、クエリが正常に機能するようになります。

..."true"パラメータはそれと関係があるのではないかと思います。

Thxみんな。

于 2009-11-12T23:47:40.850 に答える
0

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に問題があるようですが、2番目のリンクは1つの解決策です。

古いmysqlのものの代わりにphpsmysqli (MySQLImproved Extension)を使用することをお勧めします(それがあなたの問題を解決するかどうかはわかりませんが、あなたが立ち入るかもしれない他の問題を解決します)。

于 2009-11-13T00:04:28.373 に答える
0

その理由は、接続がまだメモリ内にあるためだと思われます。そのため、2番目のクエリを実行しようとすると、最後の接続が使用されます。私はJoomlaの2つのデータベースの使用の問題で同様の問題を抱えています。私はこの問題の修正を探しています、それは私たちのコードに欠けているルールだと思います。


おい!!!問題は、2番目の接続を作成するときに、デフォルトのPHPが最後の接続と同じ参照を返すことです。したがって、新しい接続が必要な場合は、次のように、$new_linkをtrueに設定してmysql_connectを準備する必要があります。

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

最後のパラメーターは、最後の参照ではなく、新しい参照が必要であることを意味します。あなたはより多くの情報を見つけることができます:

ここここ

それが役に立てば幸い。

于 2014-08-07T13:54:50.767 に答える