PHP问题求助,跪求高手指点
functiongetDataOne(){$link=mysql_connect("localhost","root","");//没有密码mysql_select_db...
function getDataOne(){
$link = mysql_connect("localhost","root","");//没有密码
mysql_select_db("mydb",$link); //选择数据库
$q = "select $this->aryChar from $this->tabName where $this->aryText"; //SQL查询语句
mysql_query("SET NAMES GB2312");
$rs = mysql_query($q,$link); //获取数据集
if(!$rs->Eof){
while(!$rs->Eof){
for($i = 0 ; $i < $rs->Fields->count ; $i ++){
$this->bodyAryOne[$i] = $rs->Fields[$i]->value;
}
$rs->movenext();
}
}else {
$this->showMessage = $this->siteCode[5];
//exit();
}
mysql_free_result($rs);
}
}
运行之后提示
Notice: Trying to get property of non-object inD:\xampp\htdocs\ZGDdsms\adodb.phpon line143
Notice: Trying to get property of non-object inD:\xampp\htdocs\ZGDdsms\adodb.phpon line144
Notice: Trying to get property of non-object inD:\xampp\htdocs\ZGDdsms\adodb.phpon line144
Fatal
error: Call to a member function movenext() on a non-object inD:\xampp\htdocs\ZGDdsms\adodb.phpon line150 展开
$link = mysql_connect("localhost","root","");//没有密码
mysql_select_db("mydb",$link); //选择数据库
$q = "select $this->aryChar from $this->tabName where $this->aryText"; //SQL查询语句
mysql_query("SET NAMES GB2312");
$rs = mysql_query($q,$link); //获取数据集
if(!$rs->Eof){
while(!$rs->Eof){
for($i = 0 ; $i < $rs->Fields->count ; $i ++){
$this->bodyAryOne[$i] = $rs->Fields[$i]->value;
}
$rs->movenext();
}
}else {
$this->showMessage = $this->siteCode[5];
//exit();
}
mysql_free_result($rs);
}
}
运行之后提示
Notice: Trying to get property of non-object inD:\xampp\htdocs\ZGDdsms\adodb.phpon line143
Notice: Trying to get property of non-object inD:\xampp\htdocs\ZGDdsms\adodb.phpon line144
Notice: Trying to get property of non-object inD:\xampp\htdocs\ZGDdsms\adodb.phpon line144
Fatal
error: Call to a member function movenext() on a non-object inD:\xampp\htdocs\ZGDdsms\adodb.phpon line150 展开
2个回答
展开全部
其实问题的关键在这里,$rs = mysql_query($q,$link); //获取数据集
返回的$rs既不是数组也不是对象,而是一个资源,因此后面$rs->EOF之类的代码都是无法执行的,正确例子
$rs = mysql_query($q,$link); //获取数据集
$rows = array();
while($row = mysql_fetch_row($rs)) {
$rows[] = $row;
}
print_r($rows);
你的代码是不是从某些框架的示例代码中复制然后修改的?原始代码应该是使用的自定义的 mysql对象或者是PDO对象,你不能仅仅替换数据库连接方式而不去修改数值获取方式就让代码顺利执行哦。
返回的$rs既不是数组也不是对象,而是一个资源,因此后面$rs->EOF之类的代码都是无法执行的,正确例子
$rs = mysql_query($q,$link); //获取数据集
$rows = array();
while($row = mysql_fetch_row($rs)) {
$rows[] = $row;
}
print_r($rows);
你的代码是不是从某些框架的示例代码中复制然后修改的?原始代码应该是使用的自定义的 mysql对象或者是PDO对象,你不能仅仅替换数据库连接方式而不去修改数值获取方式就让代码顺利执行哦。
更多追问追答
追问
额,暴露了- - 没学过PHP,对这个东西不了解额,这代码是我在原有的基础上加上PHP教程修改的,漏洞百出 0.0
我想问下
if(!$rs->Eof){
while(!$rs->Eof){
for($i = 0 ; $i Fields->count ; $i ++){
(省略后边的)
这段我要用应该怎么用? 把$rs替换成$row吗?这个还是提示Trying to get property of non-object,大侠救我!
追答
我给你的例子你运行下呗,那个是数组而不是对象,你搜索一下吧,我用手机不方便敲代码,或者明天我到单位再给你详细代码
展开全部
表面上看错误出现在这一行
$rs->movenext();
你的 $rs 变量是一个mysql查询结果,不是一个 object 对象。
所以出现PHP致命错误:调用一个非对象的成员函数 movenext();
你的代码应该是一个PHP类,且你提供的代码不是完整的,本答案仅供参考。
追问
好像是这个错了,但我不知道怎么改
我用mysql_fetch_object(resource$result)把$rs弄成对象的还是出错- -
Notice: Undefined property: stdClass::$Eof inD:\xampp\htdocs\ZGDdsms\adodb.phpon line141
追答
mysql_fetch_object 返回的是一个对象,但是按照数据表字段生成的对象。
如果 您的数据表 字段有 uid username passwaod
那么返回的对象类似:
class stdClass {
var $uid = '值';
var $username = '值';
var $passwaod = '值';
}
打印一下类似是
stdClass Object (
[uid] => 值
[username] => 值
[password] => 值
)
所以:$rs->Eof,$rs->movenext() 这些类成员属性和方法是不存在的,不存在又如何执行?
我目测你这个代码貌似是从某个开源程序中弄出来的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询