从phpoo中选择数据库

时间:2014-07-04 01:46:01

标签: php function class pdo

我们,我再次与noob问题 我在单独的1页之前为我的数据库中的选择数据制作并且它有效,这是代码:

    <?php
$ligacao = mysql_connect("localhost", "root", "") or die
("problemas na ligaçao ao MySQL");
mysql_select_db("test", $ligacao);
$sql = "select nome, telefone from teste";
$resultado = mysql_query($sql, $ligacao);
while ($registo = mysql_fetch_row($resultado)){
      print ("$registo[0] --- $registo[1] <br>");
}      
mysql_close();
?>

现在我尝试将其放在类和函数中以运行安全,我做了类似的事情 在类文件夹中:

    <?php
class vari{
    /* variables needed */
    protected $hostname;
    protected $username;
    protected $dbpass;
    protected $db;
    protected $sql;
    protected $ligacao;
    protected $resultado;
    protected $registo;

    public function liga() {
        $db = new vari;
        $db->hostname = 'localhost';
        $db->username = 'root';
        $db->dbpass = '';
        $db->db = 'mysql_select_db("test", $this->liga)';
        $db->sql = '"select nome, telefone from teste";';
        $db->ligacao = 'mysql_connect($this->hostname, $this->username, $this->dbpass)';
        $db->resultado = 'mysql_query($this->sql, $this->ligacao)';
        $db->registo = 'mysql_fetch_row($this->resultado)';

        mysql_select_db($db->db, $db->ligacao);
        while ($db->registo = 1){
            print ("$db->registo[0] --- $db->registo[1] <br>");
        }
        mysql_close();
}
}

并在索引中说:

    <?php
include 'class/classes.php';

$data= new vari;

$data->liga();
?>
经过所有艰苦的工作后,我去看看有什么变化,我有一个像这样的无限循环:

PHP Error Message

Warning: mysql_select_db(): supplied argument is not a valid MySQL-Link resource in /home/test1/class/classes.php on line 24

Free Web Hosting
1[0] --- 1[1] 
1[0] --- 1[1] 
1[0] --- 1[1] 
1[0] --- 1[1] 
1[0] --- 1[1] 
1[0] --- 1[1] 

该代码有什么问题?我得到函数和类的含义一点点,我学习但这里的问题是我认为的变量,你们可以帮助我解决这个问题吗?对不起,长篇帖子...... 并立即感谢您的美丽;) kjonh2

1 个答案:

答案 0 :(得分:0)

许多人已经指出,你不应该使用mysql_,但要直接回答你的问题,你的代码中有这一行:

$db->db = 'mysql_select_db("test", $this->liga)';

好吧,因为$this->liga不是属性,而是当前的方法/函数名称,它只调用自身。您需要在代码中进一步移动该行,并使用$this->ligacao

进行更改