个人博客网站调试问题
我用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]."
";
?>
【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]'";
即便没有 $_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是错误的。当然就会报错了。
Stellungnahme:Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn