Mysqli新闻编辑 - 致命错误

时间:2016-03-16 09:53:55

标签: php sql mysqli

我现在还在学习从Mysql到Msqli的代码,所以我现在仍然坚持使用我的代码。

我收到此错误:

  

注意:未定义的索引:nid in   第5行/public/sites/domain.nl/cms/include/functions.php

     

注意:未定义的变量:conn in   第7行/public/sites/domain.nl/cms/include/functions.php

     

致命错误:在null中调用成员函数query()   第7行/public/sites/domain.nl/cms/include/functions.php

这就是它背后的代码。

function editNieuws() {
    if(isset($_GET['nid'])) {
        $nid = ($_GET['nid']);
        $sql = "SELECT * FROM `news` WHERE id = '".$nid."'";
        $result = $conn->query($sql);

        if ($result->num_rows > 0) {
            if(isset($_POST['submit'])) {
                if(!empty($_POST['titel']) && !empty($_POST['ftext'])) {
                    $titel = mysqli_real_escape_string($conn, $_POST['titel']);
                    $ftext = mysqli_real_escape_string($conn, $_POST['ftext']);;

                    $update = "UPDATE `news` SET titel = '".$titel."', ftext = '".$ftext."' WHERE id = '".$nid."'";
                    if($update) {
                        echo'<div id="positief"><img src="images/10.png" width="16" height="16" />News article succesfully edited.</div>';
                    } else {
                        echo'<div id="negatief"><img src="images/del.png" width="16" height="16" />Try again, someting went wrong.</div>';
                    }
                } else {
                    echo'<div id="negatief"><img src="images/del.png" width="16" height="16" />There is a empty field</div>';
                }
            }
            echo'
            <fieldset>
            <legend>Edit news</legend>
            <form method="post" action="?p=delnews&edit=".$nid."">
            <table width="100%" cellpadding="2" cellspacing="2">
            <tr class="td_grey">
                <td><strong>Titel</strong></td>
                <td><input type="text" name="titel" value="'; if(isset($_POST['submit'])) { echo $_POST['titel']; } else { echo $row[titel]; } 
            echo'
            " /></td>
            </tr>
            <tr>
                <td><strong>Text</strong></td>
                <td><textarea name="ftext" cols="45" rows="5">'; if(isset($_POST['submit'])) { echo $_POST['ftext']; } else { echo $row[ftext]; } 
            echo'
            </textarea></td>
            </tr>   
            <tr>
                <td><input type="submit" name="submit" class="greenBut" value="Save" /></td>
                <td><a href="?p=delnews&del=$nid" id="greenBut2">Delete</a></td>
            </tr>
            </table>
            </form>
            </fieldset>';
        } else {
            echo'<div id="negatief"><img src="images/del.png" width="16" height="16" />No article found.</div>';
        }
    }
}

任何可以帮助我的人?我无法找到它的修复..

1 个答案:

答案 0 :(得分:0)

您的$conn对象是在您的函数之外定义的,因此可以在函数内部将其作为全局变量引用。因此,在这种情况下,您需要在函数顶部添加以下行:

global $conn;

现在您告诉PHP $conn不是局部变量,因此您需要对已在此当前函数之外定义的变量使用global关键字。