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语句,执行这个语句然后返回结果。
所以,你得找到这条语句,看看这条语句有没有语法错误,如果没有语法错误,看看语句里面是不是有单词打错了,比如字段名对不对,语句里面如果有变量,看看变量的值是不是都传递过来了,等等。
|
|