php-mysql选择一些内容并从其他表中获取列


php mysql select something and get columns from other tables

我使用的是准备好的语句,除了这两个表之外,我还需要"选择"其他表来获取数据,但我得到的是:

Fatal error: Call to a member function bind_param() on a non-object in C:'xampp'htdocs'views'user'referral.php on line 16

如果我添加SELECT table1.*,table.*,"theothertable.*"

$stmt = $mysqli->prepare("SELECT friends.*, rc_usuario.* // or just *
    FROM friends
    INNER JOIN rc_usuario ON rc_usuario.id = friends.friendID
    WHERE friends.userID = ?");
$stmt->bind_param('s', $connectedUserID);

这很好,我得到了我需要的东西,但我也需要从另一个表中获取数据,我不能进行其他选择,因为我需要一段时间才能打印所有数据。

问题是,我可以从两个表中选择类似的内容,同时从其他表中获取数据吗?

谢谢!

编辑:添加新语句:

    if ($stmt = $mysqli->prepare("SELECT friends.*, members.*, account_type.*
    FROM friends
    INNER JOIN members ON members.id = friends.friendID
    INNER JOIN account_type ON account_type.name = members.acc_type
    WHERE friends.userID = ? AND members.acc_type = ?")) {
    $stmt->bind_param('is', $connectedUserID, $connectedAcc_type);
    $stmt->execute();
    } else echo $mysqli->error;

您可以使用另一个INNER JOIN来连接更多的表,如下所示;

INNER JOIN rc_usuario ON rc_usuario.id = friends.friendID
INNER JOIN rc_another ON rc_another.col = friends.coljoin

只需确保在联接表中选择了所需的所有列即可。

这也可能有助于在if中运行prepare语句,就像这样;

if($stmt = $mysqli->prepare("SELECT ...")) { // ... where the rest of your query is
    $stmt->bind_param('s', $connectedUserID);
    $stmt->execute();
}
else {
    echo $mysqli->error;
}

这将使您了解SQL语法的任何问题。

希望这能有所帮助。