个人博客网站调试问题
我用php+mysql制作了个人博客网站,但是在调试过程中出现了问题,偶一小小菜鸟在大家热心的帮助下基本调试完成,还是有些问题解决不了,求大家帮忙啊
【1】Warning: mysql_fetch_row() expects parameter 1 to be resource, boolean given in D:\WWW\blog\show_pub.php on line 7
代码如下:
error_reporting(E_ALL^E_NOTICE);
session_start();
include "conn/conn.php";
$pubsql = "select * from tb_public where id= ".$_GET['id'];
$pubrst = mysql_query($pubsql,$link);
$pubrow = mysql_fetch_row($pubrst);
echo "
".$pubrow[2]."
Copy after login
";
?>
【2】error: mysql query 代码如下:
error_reporting(E_ALL^E_NOTICE);
include "Conn/conn.php";
$query="select * from tb_tpsc where id=".$recid;
$result=mysql_query($query);
if(!$result) die("error: mysql query");
$num=mysql_num_rows($result);
if($num $data = mysql_result($result,0,"file");
echo $data;
?>
【3】
------解决思路----------------------要学会看错误报告
Warning: mysql_fetch_row() expects parameter 1 to be resource, boolean given
是说:mysql_fetch_row() 函数期望第一个参数是一个资源,而现在的是一个 boolean (逻辑)值
那为什么 $pubrst 是逻辑值而不是资源呢?
在 mysql_query 函数说明中有:
mysql_query() 仅对 SELECT,SHOW,EXPLAIN 或 DESCRIBE 语句返回一个资源标识符,
如果查询执行不正确则返回 FALSE。
那么显然是 查询执行不正确 了
再往上,$pubsql = "select * from tb_public where id= ".$_GET['id'];
对于这个 sql 指令的生成语句,如果 $_GET['id'] 为空,即 URL 中没有 id=xxx 时
$pubsql 就变成了
select * from tb_public where id= 显然这是错误的指令
如果改成
$pubsql = "select * from tb_public where id='$_GET[id]'";
Copy after login
即便没有 $_GET['id'],sql指令也不会错:
select * from tb_public where id=''顶多查不到东西罢了
------解决思路----------------------问题2,echo一下 $query 呢?
------解决思路----------------------第二个不是同样的道理吗?
$query="select * from tb_tpsc where id=".$recid;
这句中,$recid 在哪定义的,如果没定义,那么就变成了 select * from tb_tpsc where id=
这个SQL是错误的。当然就会报错了。