【发布时间】:2016-01-29 18:22:30
【问题描述】:
在向查询中添加 JOIN 时遇到了一些困难。我正在连接到两个单独的数据库(在同一台服务器上)。出于这个原因,我正在简单地编写这个 mysqli,一旦它工作,它将转换为准备好的语句。
// REMOVED: DB VARIABLES
$conn = new mysqli($servername, $username, $password, $db_connective_data);
if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); }
$conn2 = new mysqli($servername, $username, $password, $db_resources);
if ($conn2->connect_error) { die("Connection failed: " . $conn2->connect_error); }
$sql = "SELECT * FROM downloads LEFT JOIN resource_data ON downloads.resource_id_REF=resource_data.resource_id WHERE downloads.user_basics_id_REF='$user_id'";
$result = $conn->query($sql);
$number_of_download_rows_returned = mysqli_num_rows($result) -1;
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
$resource_id_REF[] = $row['resource_id_REF'];
$download_date[] = date('Y-m-d', strtotime($row['download_date']));
$resource_title[] = $row['resource_title'];
$resource_title_link[] = str_replace(" ", "-", $row['resource_title']);
}
}
$conn->close();
没有 JOIN 的查询可以正常工作(尽管没有返回 resource_title):
$sql = "SELECT * FROM downloads WHERE downloads.user_basics_id_REF='$user_id' ORDER BY downloads.download_date DESC";
我在这里缺少什么?第一个代码示例将不返回任何结果。第二个将返回三个。
非常感谢任何帮助。
这是我引用的不同数据库名称的列表。正如我所说,一些数据在“connective_data”数据库中,一些在“资源”数据库中。
$db_connective_data = "connective_data";
$db_lists = "lists";
$db_messaging = "messaging";
$db_resources = "resources";
$db_users = "users";
我似乎无法将其中两个连接起来。我在这里遗漏了一些非常明显的东西吗?
【问题讨论】:
-
你为什么不使用
$conn2。 -
我也想知道同样的事情。有没有办法使用它? (我想我需要连接到两个数据库,不是吗?)大声笑
-
不知道需要用吗?
-
在执行查询后输入:
if(!$result){ echo $conn->error;}看看他的问题是什么。错误处理总是很重要的! -
我的意思是,使用 phpmyadmin(或类似的东西)。这将消除 php 和连接问题,并允许您测试查询本身。
标签: php mysql mysqli error-handling