我正在尝试从同一服务器中两个不同数据库中的两个表中获取数据。 我正在使用此代码
<?php
$host='localhost';
$root='root';
$password='mypass';
$db=mysql_connect($host,$root,$password) or die('unable to connect database');
$dbname='BUSMSTR_10';
mysql_select_db($dbname,$db) or die(mysql_error($db));
$db2=mysql_connect($host,$root,$password) or die('unable to connect database');
$dbname='BULIB_Info';
mysql_select_db($dbname,$db2) or die(mysql_error($db2));
$sql="SELECT
m_Student.Stud_Name_Form AS Stud_Name_Form,
m_Student.Enrl_no AS Enrl_no,
m_Subject.Sub_name AS Sub_name
FROM
BUSMSTR_05.m_Student m_Student
INNER JOIN
BULIB_Info.m_Subject m_Subject
ON
m_Student.Sub_ID=m_Subject.Sub_ID
LIMIT 10";
$rs=mysql_query($sql);
while($row=mysql_fetch_assoc($rs)){
echo $row['Stud_Name_Form']."|||||".$row['Enrl_no']."|||||".$row['Sub_name']."<BR>";
}
&GT;
但我收到了错误。 它出什么问题了.... 我将如何解决这个问题?
错误消息----
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /home/budcc/html/student/PHP/Student.php on line 25
答案 0 :(得分:3)
加入单独的数据库并不是很困难(假设它们位于同一台服务器上)就像你使用“table.field”指定字段一样,你也可以使用“database.table.field”下面是一个例子两个数据库连接:
$sql="SELECT db1.table1.somefield, db2.table1.somefield FROM db1.table1 INNER JOIN db2.table1 ON db1.table1.someid = db2.table1.someid WHERE db1.table1.somefield = 'queryCrit';"
您只需像在一个数据库中工作一样编写查询,只需使用点表示法来指定数据库。
就你的问题而言,我不认为你在表格名称之前添加数据库名称。试试。
答案 1 :(得分:1)
您打开了两个数据库连接,但没有告诉PHP使用哪个查询。在这种情况下,假定打开最后一个链接。将连接资源明确传递给mysql_query()
。
$rs=mysql_query($sql, $db);