我也在尝试从数据库和文件夹中删除图像。问题是,我不知道如何获取图像的 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
,或者用户凭据错误或用户无权访问选择的数据库。有时,如果用户没有密码,人们会跳过密码字段,请确保在这种情况下,仍然填写密码字段""
而不是跳过它。
- 1 回答
- 0 关注
- 109 浏览
添加回答
举报
0/150
提交
取消