数据库连接未定义


Database connect undefined

>我收到一个错误,说未定义的变量:con

数据库的连接在另一个 PHP 文件上(include() 已经在代码的顶部)。我只是不知道如何称呼$con

if (isset($_POST['update_profile'])) 
{
    if (isset($_POST['first_name']))
    {
        $first_name = mysqli_real_escape_string($con, $_POST['first_name']);
        $sql = mysqli_query($con, "UPDATE tbl_fbusers SET fname = '$first_name' WHERE email = '$email_to_connect'");
    }
    if (isset($_POST['last_name']))
    {
        $last_name = mysqli_real_escape_string($con, $_POST['last_name']);
        $sql = mysqli_query($con, "UPDATE tbl_fbusers SET lname = '$last_name' WHERE email = '$email_to_connect'");
    }
    if (isset($_POST['contact']))
    {
        $contact = mysqli_real_escape_string($con, $_POST['contact']);
        $sql = mysqli_query($con, "UPDATE tbl_fbusers SET contact = '$contact' WHERE email = '$email_to_connect'");
    }
}

这是另一个PHP文件

class Users {
    public $table_name = 'tbl_fbusers';
    function __construct(){
        //database configuration
        $dbServer = 'localhost'; //Define database server host
        $dbUsername = 'root'; //Define database username
        $dbPassword = ''; //Define database password
        $dbName = 'db_zalian'; //Define database name
        //connect databse
        $con = mysqli_connect($dbServer,$dbUsername,$dbPassword,$dbName);
        if(mysqli_connect_errno()){
            die("Failed to connect with MySQL: ".mysqli_connect_error());
        }else{
            $this->connect = $con;
        }
    }

谢谢!

$con定义为GLOBAL variable是一个糟糕的主意......

我建议制作一个文件(例如。 connection.php ),它将包含函数中不存在的$con变量,然后将connection.php包含在其他 PHP 文件中。它更安全,更容易,您不会遇到任何麻烦。

由于你有一个类,你需要初始化用户类。

$user = new Users();

然后

$con = $user->connect;

在这里,您可以像以下方式运行sql:

$contact = mysqli_real_escape_string($con, $_POST['contact']);
$sql = mysqli_query($con, "UPDATE tbl_fbusers SET contact =......... etc.

您需要将$con定义为全局:

global $con
$con = mysqli_connect($dbServer,$dbUsername,$dbPassword,$dbName);