我收到以下错误:
警告:unlink()[function.unlink]:无效的参数 C:\ XAMPP \ htdocs中\ SH \业主\ delete_img.php 在第11行
和
您的SQL语法有错误;检查对应的手册 到你的MySQL服务器版本,以便在附近使用正确的语法 '*来自img_homestay WHERE imgid ='“73”''在第1行
这是我删除图片的代码。我的图像有自己的imgid。我想用他们的imgid删除它。
<?php
// This is a sample code in case you wish to check the username from a mysql db table
$link=mysql_connect("localhost", "root","")or die("could not connect");
$db=mysql_select_db("sh",$link) or die ("could not select database");
$imgid = $_GET['imgid'];
// sending query
$select=mysql_query("SELECT location FROM img_homestay WHERE imgid='$imgid'");
$img=mysql_fetch_array($select);
unlink($img['location']);
$result=mysql_query("DELETE * FROM img_homestay WHERE imgid='$imgid'")
or die(mysql_error());
header("Location: editimage1.php");
?>
这是我要删除的图片之一的链接:
/SH/owner../data/img1.jpg
答案 0 :(得分:1)
来自评论。它已被编辑。
您的查询应为DELETE FROM
。从查询中删除*
。
完整查询:DELETE FROM img_homestay WHERE imgid='$imgid'
此外,您可以从查询中删除$result =
部分,也可以执行此操作。
if($result) {
//Successfully deleted image.
}
此外,您的代码非常容易受到SQL注入。您将原始用户输入传递到SQL查询中。至少,您应该逃避引用,但强烈建议您还使用MYSQLI或PDO函数集进行数据库连接和查询。
您可能还需要检查您尝试从中删除文件的文件夹的权限。理想情况下,容纳图像的文件夹应设置为chmod 755
。
http://mattbango.com/notebook/code/prepared-statements-in-php-and-mysqli/
此链接是对准备好的陈述的非常基本的介绍,也提供了进一步阅读的链接。
编辑:完整代码段。
<?php
// This is a sample code in case you wish to check the username from a mysql db table
$link=mysql_connect("localhost", "root","")or die("could not connect");
$db=mysql_select_db("sh",$link) or die ("could not select database");
$imgid = $_GET['imgid'];
$imgid = mysql_real_escape_string($imgid);
$path= $_SERVER['DOCUMENT_ROOT'].'/owner../data/';
// sending query
$select=mysql_query("SELECT location FROM img_homestay WHERE imgid='$imgid'");
$img=mysql_fetch_array($select);
unlink($path.$img['location']);
$result=mysql_query("DELETE FROM img_homestay WHERE imgid='$imgid'") or die(mysql_error());
//Check to see if the query can run
if($result) {
header("Location: editimage1.php");
} else {
//Query failed. Display an error message here.
}
&GT;
答案 1 :(得分:0)
<?php
// This is a sample code in case you wish to check the username from a mysql db table
$link=mysql_connect("localhost", "root","")or die("could not connect");
$db=mysql_select_db("sh",$link) or die ("could not select database");
$imgid = $_GET['imgid'];
$path= $_SERVER['DOCUMENT_ROOT'].'/owner../data/';
// sending query
$select=mysql_query("SELECT location FROM img_homestay WHERE imgid='$imgid'");
$img=mysql_fetch_array($select);
unlink($path.$img['location']);
$result=mysql_query("DELETE FROM img_homestay WHERE imgid='$imgid'") or die(mysql_error());
header("Location: editimage1.php");
?>
答案 2 :(得分:0)
这种类型的错误基本上需要调试。 首先检查问题是否与unlink()函数或Sql连接相关。 创建另一个php文件,检查它是否适用于静态路径
<?php
$path='/SH/owner../data/img1.jpg'; // update it as per your filepath..path should be from root
if(unlink($path))
{
echo "Deleted file ";
}
else
{
echo "Not Able to Delete File";
}
?>
让我们看看它的改造。
作为部分由9997撰写关于数据库连接和查询执行的部分似乎完全正常。