外键 ID 的问题'

我也在尝试从数据库和文件夹中删除图像。问题是,我不知道如何获取图像的 id 而不是 cardid。我的数据库看起来像这样:


卡片


id - name - etc.

卡片图片


id - image - cardid (foreign key)

这是我的代码:


    if (!empty($_POST['delete'])) {

      $name = $conn->prepare("SELECT id, image FROM cardimages WHERE cardid= ?");

      $name->bind_param('i', $_POST['id']);

      $name->execute();

      $res = $name->get_result();

      $row = $res->fetch_assoc();

      $name1 = $row['image'];


      if ($stmt = $conn->prepare("DELETE FROM cardimages WHERE id = ?")) {

        $stmt->bind_param('i', $row['id']);

        unlink($_SERVER['DOCUMENT_ROOT'] . "/$name1");

        $stmt->execute();

        $stmt->close();

      }

    }

问题在于这一行:


 $stmt->bind_param('i', $row['id']);

我不知道如何在这里获取图像的id。


芜湖不芜
浏览 110回答 1
1回答

绝地无双

这是我对上面的评论的扩展。如果您能够SELECT id, image FROM cardimages WHERE cardid= ?直接成功运行查询并返回结果,请在您的代码中尝试以下操作。使用硬编码为您知道在数据库中的 Id 的变量进行$name->bind_param('i', $_POST['id']);更改$_POST['id'],例如:$cardid = 123; //Replace 123 with an Id you know to be in the database. $name->bind_param('i', $cardid); //bind_param requires a variable, which is why you need to create a variable with the hard coded id.接下来,尝试再次运行代码。如果这次它成功返回一个值,那么您$_POST['id']没有选择合适的 ID,因此请检查您提交 ID 的表单。表单上的常见问题是未指定method="POST"(默认表单方法是“GET”,因此如果未指定“POST”,您的代码将不起作用),或者 ID 所在的字段名称错误,可能类似于name="Id"(名称区分大小写)或没有在输入的值字段中填充 id。但是,如果您的代码在添加硬编码 ID 后没有返回值,那么您与数据库的连接无法正常工作。检查以确保您在创建新的 mysqli 连接时具有正确的值。您需要确保以下信息正确并按以下顺序排列new mysqli("HOST","USERNAME","PASSWORD","DATABASE");这里常见的问题是主机不正确,有时主机不正确,localhost反之亦然127.0.0.1,或者用户凭据错误或用户无权访问选择的数据库。有时,如果用户没有密码,人们会跳过密码字段,请确保在这种情况下,仍然填写密码字段""而不是跳过它。
打开App,查看更多内容
随时随地看视频慕课网APP