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您应该编辑您的问题并选择解决方案。如果您找到了解决方案,请回答您自己的问题并选择它。