0

在过去的四个小时里,这段代码一直让我感到困惑。它正在按主 ID 删除一行照片。

我有var_dump($selectedPhoto),它是正确的 ID,一个数字。每次按删除照片时,我的代码都会运行,到达该mysqli_stmt_store_result部分并射出$txtMessage但数据库不会更新。

这真的很奇怪,因为我使用了完全相同的代码,在另一个页面上有不同的变量,它工作得很好。

看看这个,你能看出任何错误吗?或者有更好的方法来编写删除语句。

if (isset($_POST['btnDeletePhoto']))
{
    $selectedPhoto = $_SESSION['selectedPhoto'];
    $deleteString = "DELETE FROM Photos WHERE PhotoID = ?";
    $preparedDeleteStmt = mysqli_prepare($link, $deleteString);
    mysqli_stmt_bind_param($preparedDeleteStmt, 'i', $selectedPhoto);
    if (!mysqli_stmt_execute($preparedDeleteStmt))
    {
        mysqli_close($link);
        die("The system is not available, try again later");
    }
    if(mysqli_stmt_store_result($preparedDeleteStmt))
    {
        $txtMessage = "Delete successfull";
    }

添加:$selectedPhoto是一个选择的值,下拉列表值。

4

1 回答 1

0

如果照片来自选择的值,它不会存储在会话变量中,因此您可能需要更改:

$selectedPhoto = $_SESSION['selectedPhoto'];

到:

$selectedPhoto = $_POST['selectedPhoto'];

除此之外,您需要为所有数据库操作添加错误处理。

于 2012-12-05T00:40:42.220 回答