php包含仅在函数内部工作

时间:2018-04-17 14:51:55

标签: php html mysql function

我有两个php文件。一个名为index,其中包括(包括'')第二个,称为phpload。在phpload中我有一个函数 - addKid(我在其中包含phpload之后从index.php调用它),它在页面加载时将数据插入数据库。我希望phpload能够包含我所有的数据库功能。它的工作原理很好:

<?php

    function addKid() {
        include '../pass.php';
        $conn = new mysqli($servername, $username, $password, $dbname);
        mysqli_query($conn, "SET NAMES 'utf8'");
        if ($conn->connect_error) {
            die("Connection failed: " . $conn->connect_error);
        }
    $sql = "INSERT INTO kids (kid_fn, kid_ln, fk_gan_id)
    VALUES ('chk', 'chk', '1')";

    if ($conn->query($sql) === TRUE) {
        echo "<br>";
        echo "That Worked!";
    } else {
        echo "Error: " . $sql . "<br>" . $conn->error;
    }

    $conn->close();
    }
    //$myfoo = $_POST['sendfoo'];
    //$myfoo();
    ?>

但是如果我将数据库连接线放在addKid函数之外(为了在不同的数据库操作(选择/创建等)上也使用它们,它就不起作用.index.php加载它的可视内容但是我得到了一个来自phpload.php的错误500。 这就是我的意思,将数据库连接方法留在函数之外:

<?php 
include '../pass.php';
$conn = new mysqli($servername, $username, $password, $dbname);
mysqli_query($conn, "SET NAMES 'utf8'");
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}
function addKid() {
    $sql = "INSERT INTO kids (kid_fn, kid_ln, fk_gan_id)
    VALUES ('chk', 'chk', '1')";

    if ($conn->query($sql) === TRUE) {
        echo "<br>";
        echo "That Worked!";
    } else {
        echo "Error: " . $sql . "<br>" . $conn->error;
    }

    $conn->close();
}

?>

我做错了什么? 提前谢谢!

0 个答案:

没有答案