簡體   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