首 页   · 站长博客 · 用户注册 · 会员登陆  · 会员排行  ·最新主题  ·最近回复  精华区  版权声明  ·论坛管理
  当前登录身份:游客,请先登录。  笔名: 口令: 验证码:   
楼 主  index »  PHP与模板与代码加密/优化 » [求助]请各位高手帮帮忙!谢谢  


  作者:yjptljhb
  注册时间:2005-04-22
  主题/回复:7/4
  积分:439
  等级:★★☆(五级)
  称号:略有小成

  yjptljhb@163.com..
  173274239
  www.

 

 发表:2005-05-18 17:49:42 阅读 2460 次 回复 8 次 得分2  |   字号 字色
[求助]请各位高手帮帮忙!谢谢
现将出错代码写如下:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/web/greenbean-com-cn/tlchat/include/query.php on line 43
请各位高手帮帮忙!谢啦!!!!
 
 1#楼  
 
  回复人:一起PHP
  注册时间:2004-02-27
  主题/回复:247/1521
  积分:4649
  等级:★★★★★☆(十一级)
  称号:论坛圣人

   
 1#楼 发表于2005-05-18 22:49:28  评分:1 

query.php第43行附近,mysql_fetch_array()函数提供的参数不是一个有效的MYSQL资源型。
明白了没?
mysql_fetch_array需要提供一个资源型参数。
用mysql_query()函数执行一个sql语句,可以返回一个资源型变量。

所以,可以肯定是你的mysql_fetch_array()函数前面的mysql_query()函数执行没有成功。。

你在执行函数的时候最好前面不要加@,加了@会忽略报错,你检查一下sql语句什么的吧。
 2#楼  
 
  回复人:yjptljhb
  注册时间:2005-04-22
  主题/回复:7/4
  积分:439
  等级:★★☆(五级)
  称号:略有小成

   
 2#楼 发表于2005-05-19 00:19:01  评分:× 

我看了一下上面的代码没问题呀!
现将部分关键代码COPY如下:
if(get_magic_quotes_gpc())
{
ini_set("magic_quotes_gpc",1);
}
include "connect.php";
class db_query
{
var $query_number=0;
var $linkID;
var $sql;
function connect()
{
global $serverName,$DbUser,$DbPassword,$DbName;
if($this->linkID = mysql_connect($serverName,$DbUser,$DbPassword))
{
mysql_select_db($DbName,$this->linkID);
return true;
}
else
{
return false;
}
}
function query($sql)
{
$this->query_number++;
$this->sql = $sql;
$result = mysql_query($sql,$this->linkID);

按你说的试了一下,还是没找出来!还请赐教!!!!
 3#楼  
 
  回复人:一起PHP
  注册时间:2004-02-27
  主题/回复:247/1521
  积分:4649
  等级:★★★★★☆(十一级)
  称号:论坛圣人

   
 3#楼 发表于2005-05-19 02:04:57  评分: 

你这是贴了一个类出来。
看起来是一个数据库联接类,贴出来的部分由2个方法(第二个还不完整),第一个是连接到数据库,第二个十执行某一个语句,应该下面还有返回语句,也就是return $result;
使用的时候可能这样
$aa=new db_query();
$aa->connect();
$sql="....";
$result=$aa->query($sql);

然后你再下面某个地方用到了
mysql_fetch_array($result)。。。这里报错了。

把报错的地方贴出来看看。就是使用mysql_fetch_array()函数的地方
 4#楼  
 
  回复人:yjptljhb
  注册时间:2005-04-22
  主题/回复:7/4
  积分:439
  等级:★★☆(五级)
  称号:略有小成

   
 4#楼 发表于2005-05-19 04:40:33  评分:× 

下面这一段代码是接着上面的:
if(mysql_error())
{
return false;
}
else
{
return $result;
}
}
function fetchArray($result)
{
return mysql_fetch_array($result);
}
function close()
{
mysql_close($this->linkID);
}
function queryNumbers()
{
return $this->query_number;
}
function numrows($res)
{
return mysql_num_rows($res);
}
function affectedrows()
{
return mysql_affected_rows($this->linkID);
}
function insertid()
{
return mysql_insert_id($this->linkID);
}
function result($res,$row,$field)
{
return mysql_result($res,$row,$field);
}
function source()
{
return $this->sql;
}
function numFields($res)
{
return mysql_num_fields($res);
}
}
请斑竹看一下,谢谢!我这是聊天室里的一个文件.是否因为这个原因而使三人同时进入我聊天室,过五分钟就自动退出来了.烦死了!於闷!!!请高手赐教!谢谢!!!
 5#楼  
 
  回复人:kunyizhou
  注册时间:2004-11-26
  主题/回复:6/17
  积分:450
  等级:★★☆(五级)
  称号:略有小成

   
 5#楼 发表于2005-05-20 06:38:24  评分:1 

把你的SQL语句贴出来,你前面贴出来都是类函数,错误的地方在你的SQL语名,使mysql_fetch_array()函数无法识别
 6#楼  
 
  回复人:一起PHP
  注册时间:2004-02-27
  主题/回复:247/1521
  积分:4649
  等级:★★★★★☆(十一级)
  称号:论坛圣人

   
 6#楼 发表于2005-05-21 02:43:14  评分: 

你贴出来的还是一些函数和类
没有具体的语句。

我估计,你的错误 90% 的可能在 SQL 语句,10%的可能在输入的时候笔误。
有些sql语句执行不成功也不抱错。如果执行部成功,比如;
$result=mysql_query($sql);
这里如果$sql语句有错误,有时候执行并不抱错,但是这时候$reuslt不是一个资源型数据,如果试图用mysql_fetch_Array($result),肯定就错了。
 7#楼  
 
  回复人:yjptljhb
  注册时间:2005-04-22
  主题/回复:7/4
  积分:439
  等级:★★☆(五级)
  称号:略有小成

   
 7#楼 发表于2005-05-21 21:39:53  评分:× 

非常感谢斑竹对我一直的帮助!
“sql”字样只在这个文件里有,这里“var $sql;”是个引进的一个变量。
如果说与数据库连接的语句,应是“include "connect.php";”里的内容吧。
内容如下:
<?php
$serverName='localhost';
$DbName='***********';
$DbUser='**********';
$DbPassword='**********';
?>
你看一下上面有问题吗?
你说错误 90% 的可能在 SQL 语句,我想数据库里面有误吗?
 8#楼  
 
  回复人:一起PHP
  注册时间:2004-02-27
  主题/回复:247/1521
  积分:4649
  等级:★★★★★☆(十一级)
  称号:论坛圣人

   
 8#楼 发表于2005-05-23 22:24:05  评分: 

你还是没有把SQL语句贴出来。。。。

你要对数据库进行操作,不管是查询,还是删除、修改、插入等等,都得用一条语句来实现。比如
"select * from .... where ..."
"update .. set  ....where...."
"insert into ... values()..,,"

像这样的语句,才是SQL语句。
你的程序报错的地方,是因为mysql_fetch_array()报错,所以,你的mysql_fetch_array()里面的参数,比如是$result,那么这个$result是怎么来的,很有可能是$result=.....来的,这个....省略的部分,就是执行一条SQL语句的命令,当然你这个程序不是直接用的mysql_query(),所以并不能直接推断出命令的内容,但是肯定得有一条类似于上面列的SQL语句,执行这个语句然后返回结果。

所以,你得找到这条语句,看看这条语句有没有语法错误,如果没有语法错误,看看语句里面是不是有单词打错了,比如字段名对不对,语句里面如果有变量,看看变量的值是不是都传递过来了,等等。
  页数1/1首页 « 1 » 末页
  发表回复:您还没有登陆,无法发表回复。请先[登陆]

一起PHP技术联盟 主办:一起PHP 联系方式:站长QQ:4304410 QQ群:8423742 20159565 站长博客 E-mail: nqp@nqp.me 执行时间:0.01sec
SimsmaBBS 2008 (v6.0) Developed by 17php.com,Copyright(C)2003-2010 All rights reserved. 副本授权:一起PHP官方专用版