我现在还在学习从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>';
}
}
}
任何可以帮助我的人?我无法找到它的修复..
答案 0 :(得分:0)
您的$conn
对象是在您的函数之外定义的,因此可以在函数内部将其作为全局变量引用。因此,在这种情况下,您需要在函数顶部添加以下行:
global $conn;
现在您告诉PHP $conn
不是局部变量,因此您需要对已在此当前函数之外定义的变量使用global关键字。