最近有一个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 ...
等等。。。。。。先暂停!!!