> 백엔드 개발 > PHP 튜토리얼 > 关于PHP实例化对像,在线等 急

关于PHP实例化对像,在线等 急

WBOY
풀어 주다: 2016-06-23 13:43:44
원래의
840명이 탐색했습니다.

为什么我这么做。不行呢?
$db=new db;
class db
{ function sql($sql){
global $conn;  //数据库
$query = $conn->query($sql);
$rs = mysql_fetch_array($query);
return $rs;
mysql_free_result($query);

}


function Listname(){
$id =Cut(intval($weburl[2]));
$rs = $db->sql("select title from `column` where id = ".$id); 
return $rs[0];
}

报错:
Notice: Undefined variable: db in 
Fatal error: Call to a member function sql() on a non-object in 

14行出错 第14行:$rs = $db->sql("select title from `column` where id = ".$id); 


回复讨论(解决方案)

$db=new db;这句话是不是应该放在创建类下面

$query = $conn->query($sql);
改成
$query =mysql_query($sql,$conn);

把$db=new db;放在function Listname()里面

$db=new db;
这行放到 Listname函数里面去,或者说在Listname函数中调用到$db之前用global把$db全局化。
你既然在sql函数中使用了global关键字全局化了$conn变量,说明你是知道作用域的,怎么还会犯这样的错误

$query = $conn->query($sql);
改成
$query =mysql_query($sql,$conn);



按您所说改成这样:
class db
{ function sql($sql){
global $conn; 
$query = $mysql_query($sql);
$rs = mysql_fetch_array($query);
return $rs;
mysql_free_result($query);

}
$db=new db;

function Listname(){
global $db; 
$id = ourphp_Cut(intval($weburl[2]));
$rs = $db->sql("select title from `column` where id = ".$id); 
return $rs[0];
}
可还是不行
报错:Notice: Undefined variable: mysql_query
Fatal error: Function name must be a string in 

$db=new db;
这行放到 Listname函数里面去,或者说在Listname函数中调用到$db之前用global把$db全局化。
你既然在sql函数中使用了global关键字全局化了$conn变量,说明你是知道作用域的,怎么还会犯这样的错误



按照您所说的 报错Fatal error: Call to a member function query() on a non-object 

我把query()改成mysql_query就报Fatal error: Call to a member function mysql_query() on a non-object in 

这是什么意思呢

谢谢各位 解决把
$query = mysql_query($sql); 解决了

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿