DB Conn功能

时间:2016-03-26 02:51:51

标签: php mysql database

我正在尝试一些非常简单但似乎不起作用的东西。我想创建一个名为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函数我做错了吗?

2 个答案:

答案 0 :(得分:2)

db_conn()仅在您的函数$conn=db_conn(); 中可用,超出了范围。

如果启用错误报告并显示错误报告,则会发现错误100%。

虽然有更好的方法可以做到这一点但是如果你想把它作为练习,你可以让你的函数将连接资源返回给调用者。

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

你的功能可以退货

{{1}}

答案 1 :(得分:0)

你也可以这样做

$conn = '';
function db_conn() {
    global $conn;
    $conn = new mysqli... //the rest of your code here
}