Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php多数据库问题_Php_Mysql_Mysql Error 1142 - Fatal编程技术网

php多数据库问题

php多数据库问题,php,mysql,mysql-error-1142,Php,Mysql,Mysql Error 1142,我已经设置了两个数据库连接,如下所示 $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_sele

我已经设置了两个数据库连接,如下所示

$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 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());
给出此错误:

**

选择拒绝给用户的命令 表的“wordpress”@“localhost” “事件”


**

从错误中可以看出,您应该在eventos表上验证wordpress用户的权限。您的代码似乎是正确的

如果要验证这一点,可以尝试使用第二个连接从eventos选择*。作为脚本中的第一个查询执行此操作。

很好

问题解决了

不要问原因,但我已经尝试更改前两行的顺序,即将$con2放在$con1之前,查询现在可以正常工作

我怀疑…真参数与此有关

Thx伙计们。

mysql\u select\u db似乎有问题,第二个链接是一个解决方案


我建议使用phps MySQL改进扩展,而不是旧的MySQL东西。我不知道它是否解决了您的问题,但它解决了您可能遇到的其他问题

我怀疑原因是连接仍在内存中,因此当您尝试执行第二个查询时,将使用最后一个连接。我对Joomla两个数据库的使用问题也有类似的问题。我正在寻找解决这个问题的方法,我认为这是我们代码中缺少的一条规则

嘿!!!我明白了,问题是当您创建第二个连接时,默认情况下,PHP会返回上一个连接的相同引用。所以,如果你需要一个新的连接,你应该准备一个mysql\u connect,并将$new\u链接设置为true,如下所示

$myconn = @mysql_connect($this->db2_host,$this->db2_user,$this->db2_pass, true);
最后一个参数意味着您需要一个新引用,而不是最后一个引用。您可以找到更多信息:


希望有帮助。

他在上一个查询中使用$con1,witch使用root@localhost,而不是wordpress@localhost,witch是$con2您应该编辑您的问题并选择解决方案。如果您找到了解决方案,请回答您自己的问题并选择它。