好的,所以我有一个客户端试图将他的网站的一半移动到另一台服务器......在这里我仍然需要从两个数据库中提取数据。所以我有新的网站,我需要在旧网站上做一个mysql数据库查询,所以我可以包括旧的导航....但是当我做
<?php include("http://www.othersite.com/includes/db.php"); ?>
<?php include("http://www.othersite.com/includes/nav.php"); ?>
我得到了
Warning: mysql_query(): Access denied for user 'www-data'@'localhost'
(using password: NO) in /vol/www/othersite.com/public_html/includes/nav.php
on line 223 Warning:
如何从新站点访问另一个数据库,并且不允许它干扰新的数据库连接
答案 0 :(得分:1)
你可以使用:
$newLink = mysql_connect($host, $user, $password);
mysql_select_db($db, $newLink);
并且您应该将$ newLink添加到您的查询中,以便它不会使用“旧”数据库链接连接,例如:
mysql_query('SELECT * FROM USERS', $newLink);
希望有所帮助
P.S。如果你把代码放在 db.php 和 nav.php
中会更容易答案 1 :(得分:0)
您需要向我们展示用于连接这些数据库的实际代码(密码被清空)。但即使没有它,我也可以告诉你远程服务器不是localhost
。
您似乎从远程站点包含这些文件。它不会以这种方式工作,因为代码仍在本地服务器上执行。
您还必须确保远程MySQL允许远程连接,并且创建了具有适当权限的MySQL用户帐户。
请参阅:http://dev.mysql.com/doc/refman/5.5/en/privilege-system.html
答案 2 :(得分:0)
...在此我还需要提取数据 来自两个数据库。
祝你好运!
我会这样做:
注意: 当然,如果你正在谈论一些私人主机..在不使服务器脱机的情况下,有更成功但更复杂的机制可以做同样的事情。
答案 3 :(得分:0)
在浏览器中加载http://www.othersite.com/includes/db.php
。您会注意到您无法看到PHP代码:您获得的是PHP代码的输出。这意味着,将所有ìnclude
构造更改为指向远程HTTP服务器只会破坏您的网站,因为您将无法再访问源代码。
现在,回答您的问题,如果您想要连接到远程数据库,您必须找到您拥有数据库密码的任何地方并使用新的服务器地址localhost
更改数据:www-data
您的新用户等。但是,您可能需要配置远程MySQL服务器,以便它接受来自新服务器IP地址的外部连接。