0

PHP 関数の書き方がわかりません。
「オブジェクト コンテキスト以外で $this を使用しています」というエラーが表示されます。
3 行目と 4 行目 (MySQL 接続コード) だけを挿入しました。残りのコードは問題ありません。
これらの行を修正するにはどうすればよいですか?

<?php

 $this->connection = mysql_connect('localhost', 'mbrconsu_un394x', 'y1cz9,rd+hf6') or die(mysql_error());
 mysql_select_db('mbrconsu_mmx', $this->connection) or die(mysql_error());

$sql="SELECT tema FROM treinamentos ORDER BY tema ASC";
$result = mysql_query($sql);
$stack=array();
    while($row = mysql_fetch_array($result))
          {
            array_push($stack,array($row['column1'],$row['column2']));
          }

echo json_encode($stack);
?>
4

4 に答える 4

2
  1. $this内部で作業しているクラスのプロパティまたは関数を参照する場合にのみ、クラス内で使用されます。
  2. あなたはクラスに参加していないので、 に置き換え$this->connection$connectionください。
  3. mysql_* 関数の使用は避けてください。これらは非推奨です。代わりに、PDO または mySQLi のいずれかを学習することで、自分自身を有利にすることができます。
于 2013-04-02T17:50:07.140 に答える
2

$thisここで起こっているように見えるオブジェクトクラスの外では使用できません。すべての場所で名前$this->connectionを変更するだけです。$connection

mysql_*関数は非推奨であるため、関数をまったく使用しないでください。mysqli_*代わりに関数を使用することをお勧めします。

于 2013-04-02T17:50:00.937 に答える
0

キーワード「this」とポインター「->」を削除するだけです

<?php 

$connection = mysql_connect('localhost', 'mbrconsu_un394x', 'y1cz9,rd+hf6') or die(mysql_error());
mysql_select_db('mbrconsu_mmx', $connection) or die(mysql_error());

$sql="SELECT tema FROM treinamentos ORDER BY tema ASC";
$result = mysql_query($sql);
$stack=array();
    while($row = mysql_fetch_array($result))
          {
            array_push($stack,array($row['column1'],$row['column2']));
          }

echo json_encode($stack);

?>
于 2013-04-02T17:52:41.913 に答える
0

$this定義されたクラス内でのみ値を持ちます。つまり、通常、クラスを定義するときに、そのクラスのメソッドまたはプロパティを指すために使用します。

mysql_connect('localhost', 'mbrconsu_un394x', 'y1cz9,rd+hf6') or die(mysql_error());
mysql_select_db('mbrconsu_mmx') or die(mysql_error());;

これでうまくいきます。

ところで、mysqli_*またはpdoより良い結果を得るために使用します。

于 2013-04-02T17:55:04.080 に答える