php mysqli 准备语句删除查询问题
php mysqli prepared statement remove query issue
我制作了一个页面来删除我网站的不同元素,但由于某种原因它不起作用...事件虽然我将 fMenu
设置为 i - 整数,因为它是。
当我 运行 下面的代码时,它给了我:
致命错误:在 C:\Users\joonas\Desktop\Le 中的非对象上调用成员函数 bind_param() Kerouac\root\admin\remove.php 在线 44
代码(PHP):
include_once('../php/connDbPrepared.php');
mysqli_set_charset($mysqli, 'utf8');
//Anti mysql injection precautions
$menu = mysqli_real_escape_string($mysqli, $menu);
$sql = "REMOVE FROM menu WHERE fMenu = ?";
$stmt = $mysqli->prepare($sql);
$stmt->bind_param("i", $menu);
if($stmt->execute())
{
$stmt->close();
echo '
<script type="text/javascript">
window.location.replace("../admin/admintable.php?page=main&message=removeSuccessMenu");
</script>
';
}
else
{
echo '
<script type="text/javascript">
$(document).ready(function()
{
$("#screenCover").slideToggle("slow");
$("#closePopup").click(function()
{
$("#screenCover").slideToggle("slow");
setTimeout(resetPage, 600);
});
});
function resetPage()
{
window.location.replace("../admin/admintable.php?page=main");
}
</script>
<div id="screenCover" style="display:none;">
<div id="popup">
<div id="closePopupMain">
<p id="closePopup"><a href="#">X</a></p>
</div>
<p id="failure">Le menu n\'a pas éte enlevée! Cause: Erreur '.mysqli_errno($mysqli).": ".mysqli_error($mysqli).'</p>
</div>
</div>';
}
正确的函数名称是 bindParam()
而不是 bind_param()
改变
$stmt->bind_param("i", $menu);
到
$stmt->bindParam("i", $menu);
这将消除您收到的错误消息。然后你需要修改你的 SQL 语句。
mysql中没有REMOVE关键字,使用DELETE:
Delete from menu where fmenu = ?
我制作了一个页面来删除我网站的不同元素,但由于某种原因它不起作用...事件虽然我将 fMenu
设置为 i - 整数,因为它是。
当我 运行 下面的代码时,它给了我:
致命错误:在 C:\Users\joonas\Desktop\Le 中的非对象上调用成员函数 bind_param() Kerouac\root\admin\remove.php 在线 44
代码(PHP):
include_once('../php/connDbPrepared.php');
mysqli_set_charset($mysqli, 'utf8');
//Anti mysql injection precautions
$menu = mysqli_real_escape_string($mysqli, $menu);
$sql = "REMOVE FROM menu WHERE fMenu = ?";
$stmt = $mysqli->prepare($sql);
$stmt->bind_param("i", $menu);
if($stmt->execute())
{
$stmt->close();
echo '
<script type="text/javascript">
window.location.replace("../admin/admintable.php?page=main&message=removeSuccessMenu");
</script>
';
}
else
{
echo '
<script type="text/javascript">
$(document).ready(function()
{
$("#screenCover").slideToggle("slow");
$("#closePopup").click(function()
{
$("#screenCover").slideToggle("slow");
setTimeout(resetPage, 600);
});
});
function resetPage()
{
window.location.replace("../admin/admintable.php?page=main");
}
</script>
<div id="screenCover" style="display:none;">
<div id="popup">
<div id="closePopupMain">
<p id="closePopup"><a href="#">X</a></p>
</div>
<p id="failure">Le menu n\'a pas éte enlevée! Cause: Erreur '.mysqli_errno($mysqli).": ".mysqli_error($mysqli).'</p>
</div>
</div>';
}
正确的函数名称是 bindParam()
而不是 bind_param()
改变
$stmt->bind_param("i", $menu);
到
$stmt->bindParam("i", $menu);
这将消除您收到的错误消息。然后你需要修改你的 SQL 语句。
mysql中没有REMOVE关键字,使用DELETE:
Delete from menu where fmenu = ?