繁体   English   中英

php mysqli准备好的语句删除查询问题

[英]php mysqli prepared statement remove query issue

我制作了一个页面来删除网站的不同元素,但是由于某些原因,它无法正常工作...事件,尽管我将fMenu设置为i-整数,因为它是。 当我运行下面的代码时,它给了我:

致命错误 :在第44行的C:\\ Users \\ joonas \\ Desktop \\ Le Kerouac \\ root \\ admin \\ remove.php中的非对象上调用成员函数bind_param()

代码(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>';
}

mysql中没有REMOVE关键字,请使用DELETE:

Delete from menu where fmenu = ?

正确的函数名称是bindParam()而不是bind_param()

更改

$stmt->bind_param("i", $menu);

$stmt->bindParam("i", $menu);

这将摆脱您收到的错误消息。 然后,您需要修复SQL语句。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM