php - 在函数之间传递数据库连接

标签 php mysql

我是 PHP 的新手,所以也许这是一个简单的问题。这是我用来更新数据库的类。问题是它一直在标记为* 的行给我一个错误,因为它找不到$con,这显然在函数openconn() 中。看来我无法将连接传递给另一个函数。我做错了什么吗?谢谢

class retreats {

    public $retreat_name = '';

    function openconn() {
        $con = mysql_connect("localhost","root","root");

        if (!$con)
        {
            die('Could not connect: ' . mysql_error());
        }
        mysql_select_db("PHPTest", $con);
    }


    function closeconn(){
        mysql_close($con);
    }


    function add_retreat(){
        openconn();
        $sql="INSERT INTO tbl_retreats (retreat_name) VALUES ('".$this->retreat_name."')";

        if (!mysql_query($sql,$con)) *******
        {
            die('Error: ' . mysql_error());
        }

        echo "Record Successfully Added";

        closeconn();

    }
}

最佳答案

$con 是函数 openconn 的局部变量。尝试以这种方式更改您的代码:

class retreats {  

    public $retreat_name = ''; 

    private $con;

    function openconn() {
    $this->con = mysql_connect("localhost","root","root");

    if (!$this->con)
    {
        die('Could not connect: ' . mysql_error());
    }
        mysql_select_db("PHPTest", $this->con);
    }


    function closeconn(){
        mysql_close($this->con);      
    }


    function add_retreat(){  
        openconn();
        $sql="INSERT INTO tbl_retreats (retreat_name) VALUES ('".$this->retreat_name."')"; 

        if (!mysql_query($sql,$this->con))
        {
            die('Error: ' . mysql_error());
        }
            echo "Record Successfully Added";

        closeconn();  

    }     

   }  

关于php - 在函数之间传递数据库连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7115966/

相关文章:

php - 设置php的时间限制

php - 在线/离线数据库同步 - MySQL/PHP

php - 防止重复输入mysql

php - 在 opencart 中上传 zip 文件扩展名时出现无效文件类型错误

php - MySql Truncate 应该在插入循环之前删除,但也在该循环中起作用

php - http ://server-which-responds-with-204. com 是什么意思?

php - cakePHP访问没有模型的表

mysql - 从 tar 存档解压缩后无法运行 MySQL

MySQL合并表重复

mysql - Codeigniter:根据给定条件从查询结果中获取行号