ホームページ >バックエンド開発 >PHPチュートリアル >PHP、オンラインなどでのオブジェクトのインスタンス化について

PHP、オンラインなどでのオブジェクトのインスタンス化について

WBOY
WBOYオリジナル
2016-06-23 13:43:44837ブラウズ

なぜこれをするのか。うまくいかない場合はどうすればいいですか?
$db=新しいデータベース
{ function sql($sql){
グローバル $conn;
$query = $conn->query($sql);
$rs = mysql_fetch_array; );
$rs;
mysql_free_result($query);


関数 Listname(){
$rs = $db-> ;sql("select title from `column` where id = ".$id);
return $rs[0] }

エラー:
注意: 未定義の変数:
致命的なエラー: メンバー関数の呼び出し
の非オブジェクトに対する sql()
14 行目のエラー 14 行目: $rs = $db->sql("select title from `column` where id = ".$id);




ディスカッション (解決策)

$db=new db; この文を作成したクラスの下に置く必要がありますか?

$query = $conn->query($sql); に変更します。 $conn);
$db=new db; を関数 Listname() の中に入れます

$db=new db;

この行を Listname 関数に入れるか、Listname 関数で $db を呼び出します。 。

$conn 変数をグローバル化するために SQL 関数で global キーワードを使用したということは、スコープを知っているということになります。


$query = $conn->query($sql) ) ;
$query =mysql_query($sql,$conn); に変更します:

class db

{ function sql($sql){

$query = $; mysql_query($sql);

$rs = mysql_fetch_array($query);
mysql_free_result($query);

関数 Listname(){

グローバル $db; ;

$id = ourphp_Cut(intval($weburl[2]));
$rs = $db->sql("id = ".$id の `column` からタイトルを選択します
return $rs[0] ];

}
しかし、それでも動作しません
エラー: 注意: 未定義の変数: mysql_query
致命的なエラー: 関数名は


$db=new db; にこの行を入れてください。または、Listname 関数で $db を呼び出す前に、グローバルを使用して $db をグローバル化します。
$conn 変数をグローバル化するために SQL 関数で global キーワードを使用したということは、どうしてそのような間違いを犯すことができたのでしょうか?


あなたの言ったことによれば、致命的なエラー: への呼び出しです。非オブジェクトのメンバー関数 query()

query() を mysql_query に変更すると、致命的なエラーが報告されました:
の非オブジェクトのメンバー関数 mysql_query() を呼び出します
これはどういう意味ですか?

ありがとうございます。それを解決するために 解決しました
$query = mysql_query($sql);
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。