想要连接到同一个数据库表但具有不同的值

Posted

技术标签:

【中文标题】想要连接到同一个数据库表但具有不同的值【英文标题】:want to connect to the same database table but with different values 【发布时间】:2019-04-11 13:47:20 【问题描述】:

我有这段代码,我想在其中开始与同一个数据库的新连接,但与以前与数据库的连接不同,得到不同的值,但是每当我启动连接时,我在我的网站上收到的内容是一个错误说“无法获取 mysqli”请帮助我不知道该怎么做

我尝试使用“mysqli_close($conn);”关闭与数据库的连接但没用

$result = mysqli_query($conn, "SELECT * FROM userissues, response WHERE response.idmatch = userissues.emailcount");
$count = mysqli_num_rows($result);

if($count == 0)
    mysqli_close($conn);

    $result = mysqli_query($conn,"SELECT * FROM userissues WHERE departmentSent = '$_SESSION[user_email]' ORDER BY dateSent DESC");
    $count = mysqli_num_rows($result);

    if($count == 0)
        echo '<p style="margin-left: 162px; width: 300px; float: left; height: 50px;">you have no emails</p>';
    else
        while($row = mysqli_fetch_array($result))
        
            ?>
            <a href="email_preview.php?id=<?php echo $row['emailcount'];?>&site=inbox">
                <?php

            echo '
            <table border="1" id="'.$row["emailcount"].'" style="margin-left: 162px; width: 300px; float: left; height: 50px;">
            <tr><td>'.$row["user_email"].'</td></tr><br>
            <tr><td>'.$row["dateSent"].'</td></tr><br>
            <tr><td>'.$row["subject"].'</td></tr><br>
            <tr><td> '.$row["report"].'</td></tr><br><br>
            </table>
            </a>
            ';

                
    
    mysqli_close($conn);
elseif($count > 0)
        mysqli_close($conn);

        $result = mysqli_query($conn,"SELECT * FROM userissues, response WHERE userissues.departmentSent = '$_SESSION[user_email]' AND response.user_receiver = '$_SESSION[user_email]' ORDER BY userissues.dateSent AND response.dateResponded DESC");
        $count = mysqli_num_rows($result);

        if($count == 0)
            echo '<p style="margin-left: 162px; width: 300px; float: left; height: 50px;">you have no emails</p>';
        else
            while($row = mysqli_fetch_array($result))
                    echo'';
            
        

我只想与同一个数据库建立一个新的连接,但具有不同的值

【问题讨论】:

如果您只想对查询中的行进行计数,那么建议您执行SELECT COUNT(),而不是返回您实际上不想查看的结果集的查询. 哪一行有错误? 我不只是想计算它们,我正计划在 while 循环中插入来自新结果查询的数据 在 mysqli_close($conn);在 elseif @Nasser 之后 【参考方案1】:

如果您关闭连接mysqli_close($conn);,您将无法再使用该连接发出查询。基本上,这将破坏您可以发出查询和检索结果的管道。

我想你真正想做的是mysqli_free_result($result)

documentation for mysqli_free_result()

您的脚本对SQL Injection Attack 开放 甚至if you are escaping inputs, its not safe! 在MYSQLI_PDO API 中使用prepared parameterized statements

如果您确实必须关闭与数据库mysqli_close($conn); 的连接,那么您将不得不发出另一个$con = mysqli_connect() 来创建另一个连接。然而这是一个相对缓慢的过程,一个脚本实际上应该只打开一个连接。

【讨论】:

它确实有效!没有更多错误非常感谢您

以上是关于想要连接到同一个数据库表但具有不同的值的主要内容,如果未能解决你的问题,请参考以下文章

将不同文件中的多个excel表导入python并将它们连接到一个数据框中

从同一个表但不同的数据库中获取一列连接

将数据框加载到数据库表但保留现有的表结构

mysql - 如何使用父表中的值将连接表连接到另一个连接表?

MySQL - WHERE 子句中的 NOT IN 查询具有相同的结构,适用于第一个表但不适用于第二个表

如何将来自不同表但相同数据库mysqli php的2列相乘[关闭]