PHP常见报错解决方法

最近有一个PHP初学者问了我一些问题,我在这里总结一下

第一种
Warning:mysql_fetch_array() expects parameter 1 to be resource,boolean give in ...
贴出源码:

    $job=$_POST['job'];
    $dno=$_POST['dno'];
    $sql="select name from company where job=$job and dno=&dno;";
    $res = mysql_query($sql);
    $rows=array();
    while($row = mysql_fetch_array($res))
    {
        echo "employee in dept  .$dno. whose job is  .$job. : \n";
        echo "employee .$row[0] \n";
    }

先分析一下报的是什么错,他说mysql_fetch_array()的第一个参数应该的资源类型,但是传进来的确实布尔类型。那么也就是说我们的sql语句执行了但是执行失败了。
我们把sql语句提出来$sql="select name from company where job=$job and dno=$dno;"; 猛一看,好像是没有错误的,但是为什么失败了呢?为了找到原因,我们先随便在表单里填写数据并提交,并且var_dump一下sql语句,在浏览器上运行,打印结果为select name from company where job=ab and dno=wqq; 把这句话放在mysql里直接运行,so,也是执行不了的。
报错ERROR 1054 (42S22): Unknown column 'ab' in 'where clause' 这是为什么呢?也就是说他并没有把ab当成值,而是当成了字段,是啊,我们的字段属性是char,字符串类型,是需要加上引号的,诺改成这样 select name from company where job='ab' and dno='wqq'; 执行成功。
所以这个错误的解决方法就是$sql="select name from company where job='$job' and dno='$dno';"; 就可以了。


完美的分割线

在这里先说明一下,这里整理的可能不全面,因为是突然写的,不太记得都有什么错误,只能遇到什么就写什么了。还有就是有些语言可能组织的不太好,再者就是可能有些我解释的不正确等等的,希望走过路过的好汉提出批评,以改进。谢谢。(可能会有一点啰嗦0.0)


第二种

跟上面那种想似,都是这类错误,
Warning:mysql_fetch_array() expects parameter 1 to be resource,boolean give in ...

等等。。。。。。先暂停!!!

你可能感兴趣的:(PHP)