Carl Nabong Caraig
Carl Nabong Caraig

Reputation: 23

Database connect undefined

I'm getting an error saying Undefined variable: con,

the connection of the database is on the other php file, (include() is already on top of the code). I just don't know how to call the $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'");
    }
}

here is the other php file

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;
        }
    }

Thanks!

Upvotes: 2

Views: 608

Answers (3)

Steven Dropper
Steven Dropper

Reputation: 467

Defining $con as a GLOBAL variable is a terrible idea...

I suggest to make a file (eg. connection.php) that will contain the $con variable that is not in a function, and then include the connection.php to your other php files. It's more secure and easier, and you won't get to any troubles.

Upvotes: 1

Maytham Fahmi
Maytham Fahmi

Reputation: 33437

Since you have a class you need to initialize user class.

$user = new Users();

and then

$con = $user->connect;

Here you can run your sql like:

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

Upvotes: 0

Pooya
Pooya

Reputation: 6136

you need to define $con as global:

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

Upvotes: 0

Related Questions