Php 删除mysql中的行并从文件夹中关联
我有一个管理面板,可以在其中显示数据库中的行,并可以删除它们。 下面是我如何删除它们的delete.php 更新Php 删除mysql中的行并从文件夹中关联,php,mysql,Php,Mysql,我有一个管理面板,可以在其中显示数据库中的行,并可以删除它们。 下面是我如何删除它们的delete.php 更新 if (isset($_GET['id']) && is_numeric($_GET['id'])) { $id = $_GET['id']; $name = "SELECT name FROM images WHERE id=$id"; $name=mysql_fetch_assoc($name); $name=$name['name']; if ($stmt
if (isset($_GET['id']) && is_numeric($_GET['id']))
{
$id = $_GET['id'];
$name = "SELECT name FROM images WHERE id=$id";
$name=mysql_fetch_assoc($name);
$name=$name['name'];
if ($stmt = $con->prepare("DELETE FROM images WHERE id = ? LIMIT 1"))
{
$stmt->bind_param("i",$id);
$stmt->execute();
unlink("../upload/" . $name);
$stmt->close();
}
else
{
echo "ERROR: could not prepare SQL statement.";
}
$con->close();
header("Location: images_delete.php");
}
else
{
header("Location: images_delete.php");
}
然后我必须打开“上传”表单删除我从mysql中删除的图像。当我从mysql中删除该图像时,如何将其从文件夹中删除
在mysql中,我存储图像的路径和名称
更新:这是正在工作的文件的最终版本->从文件夹中删除文件并记录在数据库中
if (isset($_GET['id']) && is_numeric($_GET['id']))
{
$id = $_GET['id'];
$name = "SELECT * FROM images WHERE id=$id" or die(mysqli_error($con));
$res = mysqli_query($con, $name);
$row = mysqli_fetch_assoc($res);
$name1 = $row['name'];
//print_r($name1);
if ($stmt = $con->prepare("DELETE FROM images WHERE id = ? LIMIT 1"))
{
$stmt->bind_param("i",$id);
$folder = 'C:\wamp\www\upload';
chown($folder,465);
//var_dump($name1);
unlink($_SERVER['DOCUMENT_ROOT'] . "/upload/$name1");
$stmt->execute();
$stmt->close();
}
else
{
echo "ERROR: could not prepare SQL statement.";
}
$con->close();
使用
取消链接($your\u image\u path)
删除图像使用取消链接($your\u image\u path)
删除图像使用取消链接($your\u image\u path)
取消链接($your\u image\u path)删除图像$stmt代码>,而不是$stmt->bind_参数(“i”,$id)代码>为什么“id”
?我在那里得到整数,这就是为什么我把“I”
。你能解释一下吗?我的意思是最好使用占位符。稍微更改一下您的查询:prepare(“从id=:id LIMIT 1的图像中删除”)
然后使用$stmt->bind_参数(“:id”,$id”)代码>您正在混合MySQL APImysql\u fetch\u assoc
和您拥有的其他mysqli\u*
函数不会混合使用@Goro改为mysqli\u fetch\u assoc
不客气,很高兴@Goro$stmt->bind\u param(“id”,$id)成功了代码>,而不是$stmt->bind_参数(“i”,$id)代码>为什么“id”
?我在那里得到整数,这就是为什么我把“I”
。你能解释一下吗?我的意思是最好使用占位符。稍微更改一下您的查询:prepare(“从id=:id LIMIT 1的图像中删除”)
然后使用$stmt->bind_参数(“:id”,$id”)代码>您正在混合MySQL APImysql\u fetch\u assoc
和您拥有的其他mysqli\u*
函数不会混合使用@Goro改为mysqli\u fetch\u assoc
不客气,很高兴@Goro$stmt->bind\u param(“id”,$id)成功了代码>,而不是$stmt->bind_参数(“i”,$id)代码>为什么“id”
?我在那里得到整数,这就是为什么我把“I”
。你能解释一下吗?我的意思是最好使用占位符。稍微更改一下您的查询:prepare(“从id=:id LIMIT 1的图像中删除”)
然后使用$stmt->bind_参数(“:id”,$id”)代码>您正在混合MySQL APImysql\u fetch\u assoc
和您拥有的其他mysqli\u*
函数不会混合使用@Goro改为mysqli\u fetch\u assoc
不客气,很高兴@Goro$stmt->bind\u param(“id”,$id)成功了代码>,而不是$stmt->bind_参数(“i”,$id)代码>为什么“id”
?我在那里得到整数,这就是为什么我把“I”
。你能解释一下吗?我的意思是最好使用占位符。稍微更改一下您的查询:prepare(“从id=:id LIMIT 1的图像中删除”)
然后使用$stmt->bind_参数(“:id”,$id”)代码>您正在混合MySQL APImysql\u fetch\u assoc
和您拥有的其他mysqli\u*
函数不会混合使用@Goro改为mysqli\u fetch\u assoc
不客气,很高兴在您的if条件if($stmt=$con->prepare(“从图像中删除id=?LIMIT 1”))中成功删除DB中的条目后@Gorouse完成了此代码){
在删除之前,他必须首先选择图像名称。完全正确,首先从数据库中获取图像名称,然后从数据库中删除,如果删除成功,则使用unlink()
从文件夹中删除更新了我的问题。因此,我还显示了我要删除的图像的名称?类似于if(…)之前的内容
->$name=$\u GET['name'];
在执行之后和关闭之前,stmt$stmt->execute();取消链接(“../upload/”$name);$stmt->close();
?在if条件下从数据库中成功删除条目后使用此代码if($stmt=$con->prepare(“从id=?限制1的图像中删除”)){
在删除之前,他必须首先选择图像名称。完全正确,首先从数据库中获取图像名称,然后从数据库中删除,如果删除成功,则使用unlink()
从文件夹中删除更新了我的问题。因此,我还显示了我要删除的图像的名称?类似于if(…)之前的内容
->$name=$\u GET['name'];
在执行之后和关闭之前,stmt$stmt->execute();取消链接(“../upload/”$name);$stmt->close();
?在if条件下从数据库中成功删除条目后使用此代码if($stmt=$con->prepare(“从id=?限制1的图像中删除”)){
在删除之前,他必须首先选择图像名称。完全正确,首先从数据库中获取图像名称,然后从数据库中删除,如果删除成功,则使用unlink()
从文件夹中删除更新了我的问题。因此,我还显示了我要删除的图像的名称?类似于if(…)之前的内容
->$name=$\u GET['name'];
在执行之后和关闭之前,stmt$stmt->execute();取消链接(“../upload/”$name);$stmt->close();
?在if条件下从数据库中成功删除条目后使用此代码if($stmt=$con->prepare(“从id=?限制1的图像中删除”)){
在删除之前,他必须首先选择图像名称。完全正确,首先从数据库中获取图像名称,然后从数据库中删除,如果删除成功,则使用unlink()
从文件夹中删除更新了我的问题。因此,我还显示了我要删除的图像的名称?类似于if(…)之前的内容
->$name=$\u GET['name'];
在执行之后和关闭之前,stmt$stmt->execute();取消链接(“../upload/”$name);$stmt->close();
?