我正在尝试一些非常简单的操作,但似乎没有用。我想创建一个名为db_conn()的函数,这样我就可以调用它来打开mysql数据库,而不必每次都进行新的调用。这是函数:

    /**************************************
    Open Database Connection Function.
    ***************************************/
    /* Database Connection Settings */
    $_SESSION['servername']     = "localhost";
    $_SESSION['mysql_username'] = "abc123";
    $_SESSION['mysql_password'] = "mypass";
    $_SESSION['dbname']         = "dbname";


    function db_conn() {

        $conn = new mysqli($_SESSION['servername'], $_SESSION['mysql_username'], $_SESSION['mysql_password'], $_SESSION['dbname']);

        // Check connection
        if ($conn->connect_error) {
            die("Connection failed: " . $conn->connect_error);

        // Test if connection succeeded
        if(mysqli_connect_errno()) {
            die("Database connection failed: " .
                 mysqli_connect_error() .
                 " (" . mysqli_connect_errno() . ")"
            );
        }
    }


该函数的示例调用并回显数据:

      <?php
        db_conn();

        $sql = "SELECT id, region FROM tbl_region;";
        $result = $conn->query($sql);

        if ($result->num_rows > 0) {
            // output data of each row
            while($row = $result->fetch_assoc()) {

                echo '<td width="1"><label for="delete">
  <input type="radio" name="region" id="region" value="'.$row["id"].'">
</label></td>';

                echo '<td align="left" valign="top"><p>'.$row["region"].'</p></td></tr>';
            }
        }

      ?>


当我测试页面时,它会停在上面的代码,并且不会显示任何错误。有人可以告诉我db_conn函数在做什么错吗?

最佳答案

$conn仅在函数db_conn()内部可用,超出了范围。

如果启用错误报告并显示它们,您将注意到错误100%。

尽管有更好的方法来执行此操作,但是如果您想作为练习来做,则可以使函数将连接资源返回给调用方。

$conn=db_conn();


您的函数可以返回它

function db_conn() {
// body
return $conn;
}

关于php - DB Conn功能,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36231100/

10-13 08:43