为了账号安全,请及时绑定邮箱和手机立即绑定

外键 ID 的问题'

外键 ID 的问题'

PHP
芜湖不芜 2022-12-03 11:08:00
我也在尝试从数据库和文件夹中删除图像。问题是,我不知道如何获取图像的 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。
查看完整描述

1 回答

?
绝地无双

TA贡献1946条经验 获得超4个赞

这是我对上面的评论的扩展。

如果您能够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,或者用户凭据错误或用户无权访问选择的数据库。有时,如果用户没有密码,人们会跳过密码字段,请确保在这种情况下,仍然填写密码字段""而不是跳过它。


查看完整回答
反对 回复 2022-12-03
  • 1 回答
  • 0 关注
  • 77 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信