php mysql_fetch_array()错误

php mysql_fetch_array()错误,php,mysql,sql,database,Php,Mysql,Sql,Database,可能重复: 当我试图删除一条记录时,我收到了这个错误。查询正在运行,但这一行仍保留在页面上。我想回声删除写在while应该出现,但while循环不工作,我已经尝试和搜索了很多没有帮助 mysql_fetch_array() expects parameter 1 to be resource, boolean given in delete.php on line 27 delete.php connect.php 我应该如何使while循环工作。当您运行DELETE命令时,我相信不会返回

可能重复:

当我试图删除一条记录时,我收到了这个错误。查询正在运行,但这一行仍保留在页面上。我想回声删除写在while应该出现,但while循环不工作,我已经尝试和搜索了很多没有帮助

 mysql_fetch_array() expects parameter 1 to be resource, boolean given in delete.php on line 27
delete.php

connect.php


我应该如何使while循环工作。

当您运行DELETE命令时,我相信不会返回任何内容,因此您无法获取数组。如果您正在进行选择,通常会使用该选项。在本例中,您正在删除某些内容,因此只需删除该循环,然后进行回显。

问题在于delete语句不会生成结果集

$result = mysql_query("DELETE FROM fact WHERE id='$id'") or die(mysql_error());
if (mysql_affected_rows() > 0)
{
    echo 'Record deleted!';
}
另外:如注释中所述,您容易受到SQL注入的攻击,并且使用了不推荐使用的扩展。请仔细查看有关这些问题的一些指导

不要使用mysql函数,而是使用or。 大约$id值。 我们使用mysql_fetch_数组获取SELECT查询的返回结果。 你可能想要这个

if(mysql_affected_rows()  > 0)
{
   echo "Deleted";
}
else
{
  echo "An error occured.";
}

在一段时间内,模具会产生问题,所以您可以这样使用它
$result=mysql_queryDELETE FROM fact,其中id='$id'

不要使用mysql_*函数,试试PDO示例

<?php
$dbh = new PDO('mysql:host=localhost;dbname=test', 'user', 'password');
$count = $dbh->exec("DELETE FROM fact WHERE id='$id'");
if($count > 0){
    echo 'Deleted';
}else{
    echo 'Not Deleted';
}
?>

$count将返回已删除的行数

另外:SQL注入漏洞!另外:mysql_*函数已弃用!这个对我有用。。谢谢。。但是我必须删除while循环now@user1877823是的,不需要while循环,因为没有可循环的结果:
$result = mysql_query("DELETE FROM fact WHERE id='$id'") or die(mysql_error());

if($result)
{
    echo "Deleted";
}
    <html>
   <body>
    <form method="post">
      Id : <input type="text" name="id">
       Name : <input type="text" name="name">
   Description  : <input type="text" name="des">
     <input type="submit" value="delete" name="delete">
   </form>
   <?php 
    include("connect.php");
     $id = $_POST['id'];
     $name = $_POST['name'];
     $des = $_POST['des'];

   $result = mysql_query("DELETE FROM fact WHERE id='$id'") or die(mysql_error());

    if($result) //if(mysql_affected_rows($result) > 0)
    {

       echo "Deleted";
    }
    else
    {
        echo mysql_error();
    }

    mysql_close($con);  ?>
   </body>
    </html>
<?php
$dbh = new PDO('mysql:host=localhost;dbname=test', 'user', 'password');
$count = $dbh->exec("DELETE FROM fact WHERE id='$id'");
if($count > 0){
    echo 'Deleted';
}else{
    echo 'Not Deleted';
}
?>
$result = mysql_query("DELETE FROM fact WHERE id='$id'") or die(mysql_error());

if($result)
{
    echo "Deleted";
}