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

您不能$this在对象类之外使用,这似乎是这里发生的事情。只需在所有位置重命名$this->connection为。$connection

请注意,您也不应该使用mysql_*函数,因为它们已被弃用。您可能想改用mysqli_*函数。

于 2013-04-02T17:50:00.937 回答
2
  1. $this仅当您想要引用您正在其中工作的类的属性或函数时,才在类中使用。
  2. 你不在课堂上,所以替换$this->connection$connection.
  3. 避免使用 mysql_* 函数,它们已被弃用。通过学习 PDO 或 mySQLi,您将帮自己一个忙。
于 2013-04-02T17:50:07.140 回答
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 回答