Php mysql_fetch_array()希望参数1是给定的资源布尔值 无标题文件

Php mysql_fetch_array()希望参数1是给定的资源布尔值 无标题文件,php,html,mysql,Php,Html,Mysql,同样的代码在我的桌面上运行,但在笔记本电脑上显示mysql_fetch_array()期望参数1是资源,给定布尔值。。。while循环中出现错误。原因是什么?我只想从数据库中获取续约日期并进行一些计算。逻辑是完全好的,因为它在我的桌面上工作得很好,但在笔记本电脑上这个错误正在发生,请帮助。 `首先: 停止使用mysql\u查询,因为它已被弃用。 秒: 即使你正在使用它。请不要将其与mysqli混用 第三名: 如果您在查询中使用了占位符,请不要忘记绑定该值 <!DOCTYPE html PU

同样的代码在我的桌面上运行,但在笔记本电脑上显示mysql_fetch_array()期望参数1是资源,给定布尔值。。。while循环中出现错误。原因是什么?我只想从数据库中获取续约日期并进行一些计算。逻辑是完全好的,因为它在我的桌面上工作得很好,但在笔记本电脑上这个错误正在发生,请帮助。
`首先:
停止使用mysql\u查询,因为它已被弃用。

秒: 即使你正在使用它。请不要将其与mysqli混用 第三名: 如果您在查询中使用了占位符,请不要忘记绑定该值

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<?php 
 $con = mysql_connect("localhost","root","");
    if(!$con)
    {
    die("cannot connect" . mysql_error());
    }
    mysql_select_db("library",$con);

    $sql = "SELECT Renewal_Date FROM ilist where Student_Id=?";
    $mydata = mysqli_query($sql,$con);
    $result_array = array();
     echo "<table border=2 >
    <tr>

       <th>Renewal_Date</th>
    </tr>";


  while($record = mysql_fetch_array($mydata)){

  echo"<tr>";
  echo "<td>" . $record['Renewal_Date'] . "</td>";
  echo "</tr>";
  $todayDate = date('m/d/Y');
  $date1 = new DateTime($todayDate);
  $date2 = new DateTime($record['Renewal_Date']);
  if($date2 < $date1)
    {
  $interval = $date1->diff($date2); 
  echo "difference " . $interval->y . " years, " . $interval->m." months, ".$interval->d."        days ";
  echo"<p>";
  $extradays=$interval->m;
if($extradays==1)
{
    $eday=1;
    }else if($extradays==3){
        $eday=2;
        }   else if($extradays==5){
            $eday=3;
                }   else if($extradays==7){
                    $eday=4;
                    }   else if($extradays==8){
                        $eday=5;
                        }   else if($extradays==10){
                            $eday=6;
                            }   else if($extradays==12){
                                $eday=7;
                                }
                                else{
            $eday=0;
        }

$yd= $interval->y*365*3+$interval->d*3;

    $ydm=$yd+$interval->m*30*3;
    $ydm=$ydm+($eday*3);
    echo $ydm;
}
else
{
    echo $ydm=0;
    }
}
?>
<body>
</body>
</html>

您忘记绑定的值了?

在尝试使用查询之前,需要检查查询结果。如果有错误,返回值将为false(即布尔值而不是MySQL资源)。当这种情况发生时,您可以通过调用
mysqli\u error()
来找出问题所在。这会帮助你找到问题所在

mysql_fetch_array()希望参数1是给定的资源布尔值

发生此错误的原因是
$mydata
值实际上是
false

mysqli\u query
/
mysql\u query
函数在SQL查询成功执行时返回资源,在出现错误时返回
false

如何处理这个问题:

  • 首先,在使用MySQL函数时要保持一致(您同时使用,
    MySQL_
    mysqli_
  • 在SQL语句中将
    替换为转义值
    $SQL=“从ilist选择续订日期,其中学生Id=?”
    Mysqli
    扩展名绑定

  • p.S.:常见的建议是不要使用
    mysql\uUcode>扩展,因为它已被弃用。使用或代替。

    阅读右侧相关列的副本。谢谢。。明白了:)
    $sql = "SELECT Renewal_Date FROM ilist where Student_Id=?";